mkspecs/features/symbian/platform_paths.prf
branchRCL_3
changeset 8 3f74d0d4af4c
parent 4 3b1da2848fc7
--- a/mkspecs/features/symbian/platform_paths.prf	Mon Mar 15 12:43:09 2010 +0200
+++ b/mkspecs/features/symbian/platform_paths.prf	Thu Apr 08 14:19:33 2010 +0300
@@ -58,6 +58,8 @@
 } else {  
 
     # No platform specific paths provided, use default paths
+
+    exists($${EPOCROOT}epoc32/include/mw) { # New SF structure
     
         # ---------------------------------------
         # Location, where the applications layer specific public headers are exported
@@ -228,36 +230,243 @@
 
         OS_LAYER_LIBUTILITY_SYSTEMINCLUDE = $$OS_LAYER_PLATFORM_EXPORT_PATH(stdapis/utility)
 
+    } else { # Old pre-SF structure
+
         # ---------------------------------------
-        # Definitions to export IBY files to different folders where they will be taken 
-        # to ROM image
+        # Location, where the applications layer specific public headers are exported
+        # ---------------------------------------
+
+        defineReplace(APP_LAYER_SDK_EXPORT_PATH) {
+             return (/epoc32/include/applications/$$1)
+        }
+        defineReplace(APP_LAYER_PUBLIC_EXPORT_PATH) {
+             return (/epoc32/include/applications/$$1)
+        }
+
+        # ---------------------------------------
+        # Location, where the applications layer specific platform headers are exported
         # ---------------------------------------
-              
-        defineReplace(CORE_APP_LAYER_IBY_EXPORT_PATH) {
-            return(/epoc32/rom/include/core/app/$$1)
+
+        defineReplace(APP_LAYER_DOMAIN_EXPORT_PATH) {
+             return (/epoc32/include/domain/applications/$$1)
+        }
+        defineReplace(APP_LAYER_PLATFORM_EXPORT_PATH) {
+             return (/epoc32/include/domain/applications/$$1)
+        }
+
+        # ---------------------------------------
+        # Location, where the middleware layer specific public headers are exported
+        # ---------------------------------------
+
+        defineReplace(MW_LAYER_SDK_EXPORT_PATH) {
+             return (/epoc32/include/middleware/$$1)
+        }
+        defineReplace(MW_LAYER_PUBLIC_EXPORT_PATH) {
+             return (/epoc32/include/middleware/$$1)
         }
-        defineReplace(CORE_MW_LAYER_IBY_EXPORT_PATH) {
-            return(/epoc32/rom/include/core/mw/$$1)
+
+        # ---------------------------------------
+        # Location, where the middleware layer specific platform headers are exported
+        # ---------------------------------------
+
+        defineReplace(MW_LAYER_DOMAIN_EXPORT_PATH) {
+             return (/epoc32/include/domain/middleware/$$1)
+        }
+        defineReplace(MW_LAYER_PLATFORM_EXPORT_PATH) {
+             return (/epoc32/include/domain/middleware/$$1)
         }
-        defineReplace(CORE_OSEXT_LAYER_IBY_EXPORT_PATH) {
-            return(/epoc32/rom/include/core/os/$$1)
+
+        # ---------------------------------------
+        # Location, where the os layer specific public headers are exported
+        # ---------------------------------------
+
+        defineReplace(OSEXT_LAYER_SDK_EXPORT_PATH) {
+             return (/epoc32/include/osextensions/$$1)
         }
-        defineReplace(CORE_OS_LAYER_IBY_EXPORT_PATH) {
-            return(/epoc32/rom/include/core/os/$$1)
+        # WARNING: If the following path changes see the exists() function around line 430
+        defineReplace(OS_LAYER_PUBLIC_EXPORT_PATH) {
+             return (/epoc32/include/osextensions/$$1)
+        }
+
+        # ---------------------------------------
+        # Location, where the os specific platform headers are exported
+        # ---------------------------------------
+
+        defineReplace(OSEXT_LAYER_DOMAIN_EXPORT_PATH) {
+             return (/epoc32/include/domain/osextensions/$$1)
+        }
+        defineReplace(OS_LAYER_PLATFORM_EXPORT_PATH) {
+             return (/epoc32/include/domain/osextensions/$$1)
         }
-        defineReplace(CORE_TOOLS_LAYER_IBY_EXPORT_PATH) {
-            return(/epoc32/rom/include/core/tools/$$1)
-        }
-        defineReplace(CORE_ADAPT_LAYER_IBY_EXPORT_PATH) {
-            return(/epoc32/rom/include/$$1)
+
+        # ---------------------------------------
+        #  General comments about the 3 define statements related to include paths:
+        #  1) the /epoc32/include/oem is now defined there for backward compability.
+        #     Once the directory is empty, the directory will be removed. However this 
+        #     enables us to ensure that if you use these define statements => you do 
+        #     not have to remove the statements later on, when the directory no longer 
+        #     exists.
+        #  2) These statements should be enough in normal cases. For certain specific 
+        #     cases you might need to add some specific directory from /epoc32/include
+        #     (for instance /epoc32/include/ecom).
+        #     In normal cases the include staments in code should be relative to one of 
+        #     the system include paths, but in certain cases, the included files requires
+        #     that the subdirectory is also part of the system include paths.
+        # ---------------------------------------
+
+        # This variable defines the include paths, which are intended to be 
+        # used in the pro-files that are part of the applications-layer. It includes all 
+        # the needed directories from the /epoc32/include, that are valid ones for the 
+        # application-layer components. 
+        #
+        # Applications layer is the last one in the list, since most likely the most of 
+        # the headers come from middleware or os-layer  => thus they are first.
+
+        APP_LAYER_SYSTEMINCLUDE = \
+         /epoc32/include \
+         /epoc32/include/oem \
+         /epoc32/include/middleware \
+         /epoc32/include/domain/middleware \
+         /epoc32/include/osextensions \
+         /epoc32/include/domain/osextensions \
+         /epoc32/include/applications \
+         /epoc32/include/domain/applications \
+         /epoc32/include/domain/osextensions/loc \
+         /epoc32/include/domain/middleware/loc \
+         /epoc32/include/domain/applications/loc \
+         /epoc32/include/domain/osextensions/loc/sc \
+         /epoc32/include/domain/middleware/loc/sc \
+         /epoc32/include/domain/applications/loc/sc
+
+        # This define statements defines the include paths, which are intended to be
+        # used in the pro-files that are part of the middleware-layer. It includes all 
+        # the needed directories from the /epoc32/include, that are valid ones for the 
+        # middleware-layer components. 
+
+        MW_LAYER_SYSTEMINCLUDE = \
+         /epoc32/include \
+         /epoc32/include/oem \
+         /epoc32/include/middleware \
+         /epoc32/include/domain/middleware \
+         /epoc32/include/osextensions \
+         /epoc32/include/domain/osextensions \
+         /epoc32/include/domain/osextensions/loc \
+         /epoc32/include/domain/middleware/loc \
+         /epoc32/include/domain/osextensions/loc/sc \
+         /epoc32/include/domain/middleware/loc/sc
+
+        # This define statements defines the include paths, which are intended to be
+        # used in the pro-files that are part of the  osextensions-layer. It includes all
+        # the needed directories from the /epoc32/include, that are valid ones for the
+        # os-layer components. 
+
+        OS_LAYER_SYSTEMINCLUDE = \
+         /epoc32/include \
+         /epoc32/include/oem \
+         /epoc32/include/osextensions \
+         /epoc32/include/domain/osextensions \
+         /epoc32/include/domain/osextensions/loc \
+         /epoc32/include/domain/osextensions/loc/sc
+
+        # This define statements defines the include paths, which are intended to be
+        # used in the pro-files that are part of the os-layer. This is intended 
+        # to be only used by those components which need to use in their mmp-file either
+        # kern_ext.mmh or nkern_ext.mmh. Reason is that those
+        # 2 files already contain the /epoc32/include  as system include path.
+
+        OS_LAYER_KERNEL_SYSTEMINCLUDE = \
+         /epoc32/include/oem \
+         /epoc32/include/osextensions \
+         /epoc32/include/domain/osextensions
+
+
+        # ---------------------------------------
+        # Definitions that also define the systeminclude paths for various
+        # part of stdapis. Append to INCLUDEPATH in pro-file.
+        # ---------------------------------------
+
+        OS_LAYER_LIBC_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis) \
+                                      $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/sys) \
+                                      /epoc32/include/stdapis \
+                                      /epoc32/include/stdapis/sys
+
+        OS_LAYER_GLIB_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0) \
+                                      $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0/glib) \
+                                      $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0/gObject) \
+                                      /epoc32/include/stdapis/glib-2.0 \
+                                      /epoc32/include/stdapis/glib-2.0/glib \
+                                      /epoc32/include/stdapis/glib-2.0/gObject
+
+        OS_LAYER_SSL_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/openssl) \
+                                     /epoc32/include/stdapis/openssl
+
+        # stlportv5 is preferred over stlport as it has the throwing version of operator new
+        OS_LAYER_STDCPP_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlportv5) \
+                                        /epoc32/include/stdapis/stlportv5
+        exists($${EPOCROOT}epoc32/include/osextensions/stdapis/stlport) \
+        |exists($${EPOCROOT}epoc32/include/stdapis/stlport) {
+            !exists($${EPOCROOT}epoc32/include/osextensions/stdapis/stlportv5) \
+            :!exists($${EPOCROOT}epoc32/include/stdapis/stlportv5) {
+                OS_LAYER_STDCPP_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlport) \
+                                                /epoc32/include/stdapis/stlport
+            }
         }
-        defineReplace(CUSTOMER_VARIANT_APP_LAYER_IBY_EXPORT_PATH) {
-            return(/epoc32/rom/include/customervariant/app/$$1)
-        } 
         
-        # You need to define the following in pro-file, if you are using the stllib:
-        # QMAKE_CXXFLAGS.CW *= $$STLLIB_USAGE_CW_FLAGS
-        # DEFINES *= $$STLLIB_USAGE_DEFINES
-        STLLIB_USAGE_CW_FLAGS = "-wchar_t on"
-        STLLIB_USAGE_DEFINES = _WCHAR_T_DECLARED
+        OS_LAYER_BOOST_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/boost) \
+                                       /epoc32/include/stdapis/boost
+
+        OS_LAYER_DBUS_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/dbus-1.0) \
+                                      $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/dbus-1.0/dbus) \
+                                      /epoc32/include/stdapis/dbus-1.0 \
+                                      /epoc32/include/stdapis/dbus-1.0/dbus
+
+        OS_LAYER_LIBUTILITY_SYSTEMINCLUDE = $$OS_LAYER_PLATFORM_EXPORT_PATH(stdapis/utility) \
+                                            /epoc32/include/stdapis/utility
+
+    } 
+
+    # Definitions common to both structures
+
+    # ---------------------------------------
+    # Definitions to export IBY files to different folders where they will be taken
+    # to ROM image
+    # ---------------------------------------
+
+    defineReplace(CORE_APP_LAYER_IBY_EXPORT_PATH) {
+        return(/epoc32/rom/include/core/app/$$1)
+    }
+    defineReplace(CORE_MW_LAYER_IBY_EXPORT_PATH) {
+        return(/epoc32/rom/include/core/mw/$$1)
     }
+
+    defineReplace(LANGUAGE_APP_LAYER_IBY_EXPORT_PATH) {
+        return(/epoc32/rom/include/language/app/$$1)
+    }
+    defineReplace(LANGUAGE_MW_LAYER_IBY_EXPORT_PATH) {
+        return(/epoc32/rom/include/language/mw/$$1)
+    }
+
+    defineReplace(CUSTOMER_APP_LAYER_IBY_EXPORT_PATH) {
+        return(/epoc32/rom/include/customer/app/$$1)
+    }
+    defineReplace(CUSTOMER_MW_LAYER_IBY_EXPORT_PATH) {
+        return(/epoc32/rom/include/customer/mw/$$1)
+    }
+
+    defineReplace(CUSTOMER_VARIANT_APP_LAYER_IBY_EXPORT_PATH) {
+        return(/epoc32/rom/include/customervariant/app/$$1)
+    }
+    defineReplace(CUSTOMER_VARIANT_MW_LAYER_IBY_EXPORT_PATH) {
+        return(/epoc32/rom/include/customervariant/mw/$$1)
+    }
+
+    # You need to define the following in pro-file, if you are using the stllib:
+    # QMAKE_CXXFLAGS.CW *= $$STLLIB_USAGE_CW_FLAGS
+    # DEFINES *= $$STLLIB_USAGE_DEFINES
+    STLLIB_USAGE_CW_FLAGS = "-wchar_t on"
+    STLLIB_USAGE_DEFINES = _WCHAR_T_DECLARED
+
+}
+
+
+