devicesrv_pub/platform_path_definitions_api/inc/platform_paths.hrh
branchRCL_3
changeset 22 8cb079868133
parent 21 ccb4f6b3db21
equal deleted inserted replaced
21:ccb4f6b3db21 22:8cb079868133
     9 * Initial Contributors:
     9 * Initial Contributors:
    10 * Nokia Corporation - initial contribution.
    10 * Nokia Corporation - initial contribution.
    11 *
    11 *
    12 * Contributors:
    12 * Contributors:
    13 *
    13 *
    14 * Description:
    14 * Description:  Predefined include paths to be used in the mmp-files for the 
       
    15 *                components in the layered model. There is one definition for
       
    16 *                each layer. The mmp-file should use the statement that is 
       
    17 *                intended for the same layer as where the mmp-file resides.
       
    18 *
       
    19 *                There is also macros to be used in the bld.inf-files to 
       
    20 *                export of Public  and Platform headers into 
       
    21 *                correct locations. 
       
    22 *
       
    23 * Usage examples:
       
    24 *     ---------------------------------------------
       
    25 *      How to include this file in bld.inf and mmp-files.
       
    26 *       Reasoning: The build system is such that at the time the 
       
    27 *                  bld.inf and mmp-files are "compiled" the available
       
    28 *                  include paths are limited. Only the /epoc32/include
       
    29 *                  can be guaranteed. Thus to get this file available
       
    30 *                  you need to make include relative to the mentioned
       
    31 *                  directory. 
       
    32 *     ---------------------------------------------
       
    33 *
       
    34 *      #include <platform_paths.hrh>
       
    35 *    
       
    36 *     *************************************************************
       
    37 *     * MMP file related macro usages to add the system include paths
       
    38 *     * 
       
    39 *     * The include paths has to be related to the layer in which your SW 
       
    40 *     * resides. Thus as an example: a component residing in middleware
       
    41 *     * layer should use the MW specific macro.
       
    42 *     * Keep this as a separate line in the mmp-files. If you need to
       
    43 *     * add your own SYSTEMINCLUDE paths, please defined them as
       
    44 *     * separate statement.
       
    45 *     *************************************************************
       
    46 *         APP_LAYER_SYSTEMINCLUDE
       
    47 *         MW_LAYER_SYSTEMINCLUDE
       
    48 *         OS_LAYER_SYSTEMINCLUDE
       
    49 **
       
    50 *     *************************************************************
       
    51 *     * Macros related to using various parts of stdapis
       
    52 *     *************************************************************
       
    53 *       To use STLLIB you need to have this in your mmp-file
       
    54 *         STLLIB_USAGE_DEFINITIONS
       
    55 *
       
    56 *       Depending on what module you are using from stdapis you need to have
       
    57 *       one or more of the following macros in your mmp-file (every one in 
       
    58 *       separate line !)
       
    59 *
       
    60 *          OS_LAYER_LIBC_SYSTEMINCLUDE
       
    61 *          OS_LAYER_GLIB_SYSTEMINCLUDE
       
    62 *          OS_LAYER_SSL_SYSTEMINCLUDE
       
    63 *          OS_LAYER_STDCPP_SYSTEMINCLUDE
       
    64 *          OS_LAYER_BOOST_SYSTEMINCLUDE
       
    65 *          OS_LAYER_DBUS_SYSTEMINCLUDE
       
    66 *          OS_LAYER_LIBUTILITY_SYSTEMINCLUDE
       
    67 *
       
    68 *     *************************************************************
       
    69 *     * Macros related to exporting Public and Platform APIs into 
       
    70 *     * correct place in the new system. 
       
    71 *     *
       
    72 *     * The macro that you should use depends on 2 things:
       
    73 *     *  - in which layer your package, which exports the APIs resides
       
    74 *     *  - what is the visibility of the API (public or platform)
       
    75 *     *************************************************************
       
    76 *      // the exporting of public APIs should use one of below macros
       
    77 *      // depending on which layer the API belogs to
       
    78 *      APP_LAYER_PUBLIC_EXPORT_PATH
       
    79 *      MW_LAYER_PUBLIC_EXPORT_PATH
       
    80 *      OS_LAYER_PUBLIC_EXPORT_PATH
       
    81 *
       
    82 *      // the exporting of platform APIs should use one of below macros
       
    83 *      // depending on which layer the API belogs to
       
    84 *      APP_LAYER_PLATFORM_EXPORT_PATH
       
    85 *      MW_LAYER_PLATFORM_EXPORT_PATH
       
    86 *      OS_LAYER_PLATFORM_EXPORT_PATH
       
    87 *
       
    88 *      The hierarchy how APIs should reside in foundation has been specified
       
    89 *      in developer documentation. See further details from documentation.
       
    90 *      Below is example case relying on the structure
       
    91 *        my_own_api/group/bld.inf
       
    92 *        my_own_api/inc/header1.h
       
    93 *        my_own_api/inc/subdir/header2.h
       
    94 *  
       
    95 *      Assuming that the API is in middleware layer and a public API. 
       
    96 *      Then the bld.inf should have the following      
       
    97 *        ../inc/header1.h  APP_LAYER_PUBLIC_EXPORT_PATH(header1.h)
       
    98 *        ../inc/subdir/header2.h  APP_LAYER_PUBLIC_EXPORT_PATH(subdir/header2.h)
       
    99 *  
       
   100 *      In the above case the locations are as follow (with current MACRO settings):
       
   101 *        header1.h in /epoc32/include/app
       
   102 *        header2.h in /epoc32/include/app/subdir
       
   103 *
       
   104 *
       
   105 *     *************************************************************
       
   106 *     * Macros related to IBY file exporting
       
   107 *     *************************************************************
       
   108 *			
       
   109 *	    Component bld.inf files need to include platform_paths.hrh, see
       
   110 *           beginning of this file on how to do this correctly. Component bld.inf 
       
   111 *           files need to use these macros in PRJ_EXPORTS to get their IBY files 
       
   112 *           to ROM image.
       
   113 *
       
   114 *     ---------------------------------------------
       
   115 *     Usage for Core image (ROM+ROFS1):
       
   116 *     ---------------------------------------------
       
   117 *	 // Layer specific specific macros. Use the macro, which is specified
       
   118 *        // for the layer, in which your component resides
       
   119 *        <somepath>/<file1.iby>  CORE_APP_LAYER_IBY_EXPORT_PATH(<file1.iby>)
       
   120 *	 <somepath>/<file2.iby>  CORE_MW_LAYER_IBY_EXPORT_PATH(<file2.iby>)
       
   121 *	 <somepath>/<file3.iby>  CORE_OS_LAYER_IBY_EXPORT_PATH(<file3.iby>)
       
   122 *
       
   123 *	 //stub iby files
       
   124 *	 <somepath>/<file4.iby>  CORE_IBY_EXPORT_PATH(stubs,<file4.iby>)
       
   125 *	 //tool iby files
       
   126 *	 <somepath>/<file5.iby>  CORE_IBY_EXPORT_PATH(tools,<file5.iby>)
       
   127 *		
       
   128 *     ---------------------------------------------
       
   129 *     Usage for Variant image, Language part (ROFS2):
       
   130 *     ---------------------------------------------
       
   131 *	 // Layer specific specific macros. Use the macro, which is specified
       
   132 *        // for the layer, in which your component resides
       
   133 *        <somepath>/<file1.iby>  LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(<file1.iby>)
       
   134 *	 <somepath>/<file2.iby>  LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(<file2.iby>)
       
   135 *	 <somepath>/<file3.iby>  LANGUAGE_OS_LAYER_IBY_EXPORT_PATH(<file3.iby>)			
       
   136 *
       
   137 *     ---------------------------------------------
       
   138 *     Usage for Variant image, Language part  (ROFS2):
       
   139 *     ---------------------------------------------
       
   140 *	 // Layer specific specific macros. Use the macro, which is specified
       
   141 *        // for the layer, in which your component resides
       
   142 *        <somepath>/<file1.iby>  CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(<file1.iby>)
       
   143 *	 <somepath>/<file2.iby>  CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(<file2.iby>)
       
   144 *	 <somepath>/<file3.iby>  CUSTOMER_OS_LAYER_IBY_EXPORT_PATH(<file3.iby>)			
       
   145 *
       
   146 *     ---------------------------------------------
       
   147 *     Usage for Customer Variant image, (ROFS3):
       
   148 *     ---------------------------------------------
       
   149 *	 // Layer specific specific macros. Use the macro, which is specified
       
   150 *        // for the layer, in which your component resides
       
   151 *        <somepath>/<f1.iby> CUSTOMER_VARIANT_APP_LAYER_IBY_EXPORT_PATH(<f1.iby>)
       
   152 *	 <somepath>/<f2.iby> CUSTOMER_VARIANT_MW_LAYER_IBY_EXPORT_PATH(<f2.iby>)
       
   153 *	 <somepath>/<f3.iby> CUSTOMER_VARIANT_OS_LAYER_IBY_EXPORT_PATH(<f3.iby>)			
       
   154 *	
       
   155 *
       
   156 *     *************************************************************
       
   157 *     * Macro related to Exporting localization .loc files into 
       
   158 *     * correct place in the system. 
       
   159 *     *************************************************************
       
   160 *
       
   161 *     ---------------------------------------------
       
   162 *     Usage for components:
       
   163 *     ---------------------------------------------
       
   164 *	    Component bld.inf files need to include platform_paths.hrh, see
       
   165 *           beginning of this file on how to do this correctly. Component bld.inf 
       
   166 *           files need to use these macros in PRJ_EXPORTS to get their loc files 
       
   167 *           for localization.
       
   168 *     loc files that should be localized by localisation team should be in 
       
   169 *     loc-folder in the source tree (see developer guidelines)
       
   170 *
       
   171 *	 // Layer specific specific macros. Use the macro, which is specified
       
   172 *        // for the layer, in which your component resides
       
   173 *	 <somepath>/loc/<file>.loc  APP_LAYER_LOC_EXPORT_PATH(<file>.loc)
       
   174 *	 <somepath>/loc/<file>.loc  MW_LAYER_LOC_EXPORT_PATH(<file>.loc)
       
   175 *	 <somepath>/loc/<file>.loc  OS_LAYER_LOC_EXPORT_PATH(<file>.loc)
       
   176 *
       
   177 * 
       
   178 *
    15 *
   179 *
    16 */
   180 */
    17 
   181 
    18 
   182 
    19 #ifndef PLATFORM_PATHS_HRH
   183 #ifndef PLATFORM_PATHS_HRH
    20 #define PLATFORM_PATHS_HRH
   184 #define PLATFORM_PATHS_HRH
    21 
   185 
    22 #include <variant/platform_paths.hrh>
   186 /**
       
   187 **************************************************************************
       
   188 * General comments about the exporting of headers macros
       
   189 *  1) The definitions point currently to the old locations. (which makes some 
       
   190 *     macros to have same values. The idea is that you can already start using
       
   191 *     them now and those will be later on changed => change affects everybody.
       
   192 ***************************************************************************
       
   193 */
       
   194 
       
   195 /**
       
   196 * ---------------------------------------
       
   197 * Location, where the applications layer specific public headers should be exported
       
   198 * See usage on top of this hrh-file.
       
   199 * ---------------------------------------
       
   200 */
       
   201 
       
   202 #if __GNUC__ >= 3
       
   203 #define APP_LAYER_SDK_EXPORT_PATH(exported) do not use intentionally generates error
       
   204 #define APP_LAYER_PUBLIC_EXPORT_PATH(exported) /epoc32/include/app/exported
       
   205 #else
       
   206 #define APP_LAYER_SDK_EXPORT_PATH(exported) do not use intentionally generates error
       
   207 #define APP_LAYER_PUBLIC_EXPORT_PATH(exported) /epoc32/include/app/##exported
       
   208 #endif
       
   209 
       
   210 /**
       
   211 * ---------------------------------------
       
   212 * Location, where the applications layer specific platform headers should be exported
       
   213 * See usage on top of this hrh-file.
       
   214 * ---------------------------------------
       
   215 */
       
   216 #if __GNUC__ >= 3
       
   217 #define APP_LAYER_DOMAIN_EXPORT_PATH(exported) do not use intentionally generates error
       
   218 #define APP_LAYER_PLATFORM_EXPORT_PATH(exported) /epoc32/include/platform/app/exported
       
   219 #else
       
   220 #define APP_LAYER_DOMAIN_EXPORT_PATH(exported) do not use intentionally generates error
       
   221 #define APP_LAYER_PLATFORM_EXPORT_PATH(exported) /epoc32/include/platform/app/##exported
       
   222 #endif
       
   223 
       
   224 /**
       
   225 * ---------------------------------------
       
   226 * Location, where the middleware layer specific public headers should be exported
       
   227 * See usage on top of this hrh-file.
       
   228 * ---------------------------------------
       
   229 */
       
   230 #if __GNUC__ >= 3
       
   231 #define MW_LAYER_SDK_EXPORT_PATH(exported) do not use intentionally generates error
       
   232 #define MW_LAYER_PUBLIC_EXPORT_PATH(exported) /epoc32/include/mw/exported
       
   233 #else
       
   234 #define MW_LAYER_SDK_EXPORT_PATH(exported) do not use intentionally generates error
       
   235 #define MW_LAYER_PUBLIC_EXPORT_PATH(exported) /epoc32/include/mw/##exported
       
   236 #endif
       
   237 
       
   238 /**
       
   239 * ---------------------------------------
       
   240 * Location, where the middleware layer specific platform headers should be exported
       
   241 * ---------------------------------------
       
   242 */
       
   243 #if __GNUC__ >= 3
       
   244 #define MW_LAYER_DOMAIN_EXPORT_PATH(exported) do not use intentionally generates error
       
   245 #define MW_LAYER_PLATFORM_EXPORT_PATH(exported) /epoc32/include/platform/mw/exported
       
   246 #else
       
   247 #define MW_LAYER_DOMAIN_EXPORT_PATH(exported) do not use intentionally generates error
       
   248 #define MW_LAYER_PLATFORM_EXPORT_PATH(exported) /epoc32/include/platform/mw/##exported
       
   249 #endif
       
   250 
       
   251 /**
       
   252 * ---------------------------------------
       
   253 * Location, where the os layer specific public headers should be exported
       
   254 * ---------------------------------------
       
   255 */
       
   256 #if __GNUC__ >= 3
       
   257 #define  OSEXT_LAYER_SDK_EXPORT_PATH(exported) do not use intentionally generates error
       
   258 #define  OS_LAYER_PUBLIC_EXPORT_PATH(exported) /epoc32/include/exported
       
   259 #else
       
   260 #define  OSEXT_LAYER_SDK_EXPORT_PATH(exported) do not use intentionally generates error
       
   261 #define  OS_LAYER_PUBLIC_EXPORT_PATH(exported) /epoc32/include/##exported
       
   262 #endif
       
   263 
       
   264 /**
       
   265 * ---------------------------------------
       
   266 * Location, where the os specific platform headers should be exported
       
   267 * ---------------------------------------
       
   268 */
       
   269 #if __GNUC__ >= 3
       
   270 #define OSEXT_LAYER_DOMAIN_EXPORT_PATH(exported) do not use intentionally generates error
       
   271 #define OS_LAYER_PLATFORM_EXPORT_PATH(exported) /epoc32/include/platform/exported
       
   272 #else
       
   273 #define OSEXT_LAYER_DOMAIN_EXPORT_PATH(exported) do not use intentionally generates error
       
   274 #define OS_LAYER_PLATFORM_EXPORT_PATH(exported) /epoc32/include/platform/##exported
       
   275 #endif
       
   276 
       
   277 /**
       
   278 * ---------------------------------------
       
   279 * Location, where the  cenrep excel sheets should be exported
       
   280 * Deprecated: should no longer be used. Kept for compability.
       
   281 * ---------------------------------------
       
   282 */
       
   283 #if __GNUC__ >= 3
       
   284 #define CENREP_XLS_EXPORT_PATH(exported) /epoc32/tools/cenrep/data/src/exported
       
   285 #else
       
   286 #define CENREP_XLS_EXPORT_PATH(exported) /epoc32/tools/cenrep/data/src/##exported
       
   287 #endif
       
   288 
       
   289 /**
       
   290 **************************************************************************
       
   291 *  General comments about the 3 define statements related to include paths:
       
   292 *  1) the /epoc32/include/oem is now defined there for backward compability.
       
   293 *     Once the directory is empty, the directory will be removed. However this 
       
   294 *     enables us to ensure that if you use these define statements => you do 
       
   295 *     not have to remove the statements later on, when the directory no longer 
       
   296 *     exists.
       
   297 *  2) These statements should be enough in normal cases. For certain specific 
       
   298 *     cases you migth need to add some specific directory from /epoc32/include
       
   299 *     (for instance /epoc32/include/ecom).
       
   300 *     In normal cases the include staments in code should be relative to one of 
       
   301 *     the system include paths, but in certain cases, the included files requires
       
   302 *     that the subdirectory is also part of the system include paths.
       
   303 ****************************************************************************
       
   304 */
       
   305 
       
   306 /**
       
   307 * This define statements defines the SYSTEMINCLUDE-line, which is intended to be 
       
   308 * used in the mmp-files that are part of the applications-layer. It includes all 
       
   309 * the needed directories from the /epoc32/include, that are valid ones for the 
       
   310 * application-layer components. 
       
   311 *
       
   312 * Applications layer is the last one in the list, since most likely the most of 
       
   313 * the headers come from middleware or os-layer  => thus they are first.
       
   314 */
       
   315 #define APP_LAYER_SYSTEMINCLUDE SYSTEMINCLUDE \
       
   316  /epoc32/include \
       
   317  /epoc32/include/mw \
       
   318  /epoc32/include/platform/mw \
       
   319  /epoc32/include/platform \
       
   320  /epoc32/include/app \
       
   321  /epoc32/include/platform/app \
       
   322  /epoc32/include/platform/loc \
       
   323  /epoc32/include/platform/mw/loc \
       
   324  /epoc32/include/platform/app/loc \
       
   325  /epoc32/include/platform/loc/sc \
       
   326  /epoc32/include/platform/mw/loc/sc \
       
   327  /epoc32/include/platform/app/loc/sc
       
   328  
       
   329 /**
       
   330 * This define statements defines the SYSTEMINCLUDE-line, which is intended to be
       
   331 * used in the mmp-files that are part of the middleware-layer. It includes all 
       
   332 * the needed directories from the /epoc32/include, that are valid ones for the 
       
   333 * middleware-layer components. 
       
   334 */
       
   335 #define MW_LAYER_SYSTEMINCLUDE SYSTEMINCLUDE \
       
   336  /epoc32/include \
       
   337  /epoc32/include/mw \
       
   338  /epoc32/include/platform/mw \
       
   339  /epoc32/include/platform \
       
   340  /epoc32/include/platform/loc \
       
   341  /epoc32/include/platform/mw/loc \
       
   342  /epoc32/include/platform/loc/sc \
       
   343  /epoc32/include/platform/mw/loc/sc
       
   344 
       
   345 /**
       
   346 * This define statements defines the SYSTEMINCLUDE-line, which is intended to be
       
   347 * used in the mmp-files that are part of the  osextensions-layer. It includes all
       
   348 * the needed directories from the /epoc32/include, that are valid ones for the
       
   349 * os-layer components. 
       
   350 */
       
   351 #define OS_LAYER_SYSTEMINCLUDE SYSTEMINCLUDE \
       
   352  /epoc32/include \
       
   353  /epoc32/include/platform \
       
   354  /epoc32/include/platform/loc \
       
   355  /epoc32/include/platform/loc/sc
       
   356 
       
   357 // Below statement is Deprecated and the OS_LAYER_SYSTEMINCLUDE-macro has to be
       
   358 // used.
       
   359 // Removed, use teh OS_LAYER_SYSTEMINCLUDE instead.
       
   360 // #define OSEXT_LAYER_SYSTEMINCLUDE OS_LAYER_SYSTEMINCLUDE
       
   361 
       
   362 /**
       
   363 * This define statements defines the SYSTEMINCLUDE-line, which is intended to be
       
   364 * used in the mmp-files that are part of the os-layer. This is intended 
       
   365 * to be only used by those components which need to use in their mmp-file either
       
   366 * kern_ext.mmh or nkern_ext.mmh. Reason is that those
       
   367 * 2 files already contain the /epoc32/include  as system include path.
       
   368 * 
       
   369 */
       
   370 #define OS_LAYER_KERNEL_SYSTEMINCLUDE SYSTEMINCLUDE \
       
   371  /epoc32/include/platform
       
   372 
       
   373 // Below statement is Deprecated and the OS_LAYER_KERNEL_SYSTEMINCLUDE-macro 
       
   374 // has to be used.
       
   375 // Removed, use the OS_LAYER_KERNER_SYSTEMINCLUDE instead.
       
   376 // #define OSEXT_LAYER_KERNEL_SYSTEMINCLUDE OS_LAYER_KERNEL_SYSTEMINCLUDE
       
   377 
       
   378 /**
       
   379 ****************************************************************************
       
   380 * Definitions that also define the systeminclude paths for various
       
   381 * part of stdapis. Each statement has to be in its own line in the using
       
   382 * mmp-file. There are be more than 1 statement in single mmp-file.
       
   383 ****************************************************************************
       
   384 */
       
   385 #define OS_LAYER_LIBC_SYSTEMINCLUDE SYSTEMINCLUDE  OS_LAYER_PUBLIC_EXPORT_PATH(stdapis)
       
   386 
       
   387 #define OS_LAYER_GLIB_SYSTEMINCLUDE SYSTEMINCLUDE  OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0) \
       
   388                                                    OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0/glib) \
       
   389                                                    OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0/gobject)
       
   390 
       
   391 
       
   392 #define OS_LAYER_SSL_SYSTEMINCLUDE SYSTEMINCLUDE   OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/openssl)
       
   393                   
       
   394 #define OS_LAYER_STDCPP_SYSTEMINCLUDE SYSTEMINCLUDE  OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlport) 
       
   395 
       
   396 #define OS_LAYER_BOOST_SYSTEMINCLUDE SYSTEMINCLUDE   OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/boost)
       
   397 
       
   398 #define OS_LAYER_DBUS_SYSTEMINCLUDE SYSTEMINCLUDE    OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/dbus-1.0) \
       
   399                                                      OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/dbus-1.0/dbus)
       
   400 #define OS_LAYER_LIBUTILITY_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PLATFORM_EXPORT_PATH(stdapis/utility)
       
   401 
       
   402 #define OS_LAYER_LIBOIL_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PLATFORM_EXPORT_PATH(stdapis/liboil)
       
   403 
       
   404 #define MW_LAYER_GSTREAMER_SYSTEMINCLUDE SYSTEMINCLUDE \
       
   405  /epoc32/include/platform/mw/gstreamer/10_18 \
       
   406  /epoc32/include/platform/mw/gstreamer/10_18/gst \
       
   407  /epoc32/include/platform/mw/gstreamer/10_18/gst/gstcontroller \
       
   408  /epoc32/include/stdapis/machine
       
   409 
       
   410 // You need to add STLLIB_USAGE_DEFINITIONS as a separate line into your mmp-file, if you are using
       
   411 // the stllib. 
       
   412 #define STLLIB_USAGE_DEFINITIONS OPTION CW -wchar_t on\
       
   413         MACRO _WCHAR_T_DECLARED
       
   414 
       
   415 
       
   416 /**
       
   417 ****************************************************************************
       
   418 * Definitions that also define the paths to the layer specific source directories.
       
   419 ****************************************************************************
       
   420 */
       
   421 /**
       
   422 * The below 3 macros define the paths to the layer-specific source dirs.
       
   423 * See usage on top of this hrh-file, these are used the same way as 
       
   424 * for instance the OS_LAYER_DOMAIN_EXPORT_PATH
       
   425 * Deprecated: is not allowed to be using in Symbian Foundation
       
   426 */
       
   427 #if __GNUC__ >= 3
       
   428 #define APP_LAYER_SOURCE_PATH(rest)    do not use intentionally generates error in export
       
   429 #define MW_LAYER_SOURCE_PATH(rest)     do not use intentionally generates error in export
       
   430 #define OSEXT_LAYER_SOURCE_PATH(rest)  do not use intentionally generates error in export
       
   431 #else
       
   432 #define APP_LAYER_SOURCE_PATH(rest)    do not use intentionally generates error in export
       
   433 #define MW_LAYER_SOURCE_PATH(rest)     do not use intentionally generates error in export
       
   434 #define OSEXT_LAYER_SOURCE_PATH(rest)  do not use intentionally generates error in export
       
   435 #endif
       
   436 
       
   437 /**
       
   438 ****************************************************************************
       
   439 * Definitions to export IBY files to different folders where they will be taken 
       
   440 * to ROM image
       
   441 ****************************************************************************
       
   442 */
       
   443 
       
   444 // Following three definitions are used for exporting IBY files to 
       
   445 // Core image (ROM+ROFS1). IBY files are exported according to their layer.
       
   446 #if __GNUC__ >= 3
       
   447 #define CORE_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/core/app/exported
       
   448 #define CORE_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/core/mw/exported
       
   449 #define CORE_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
       
   450 #define CORE_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/core/os/exported
       
   451 #define CORE_ADAPT_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/exported
       
   452 #else
       
   453 #define CORE_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/core/app/##exported
       
   454 #define CORE_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/core/mw/##exported
       
   455 #define CORE_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
       
   456 #define CORE_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/core/os/##exported
       
   457 #define CORE_ADAPT_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/##exported
       
   458 #endif
       
   459 
       
   460 // Following three definitions are used for exporting IBY files to Variant image, 
       
   461 // Language part (ROFS2). IBY files are exported according to their layer.
       
   462 #if __GNUC__ >= 3
       
   463 #define LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/language/app/exported
       
   464 #define LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/language/mw/exported
       
   465 #define LANGUAGE_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
       
   466 #define LANGUAGE_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/language/os/exported
       
   467 #else
       
   468 #define LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/language/app/##exported
       
   469 #define LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/language/mw/##exported
       
   470 #define LANGUAGE_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
       
   471 #define LANGUAGE_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/language/os/##exported
       
   472 #endif
       
   473 
       
   474 // Following three definitions are used for exporting IBY files to Variant image, (ROFS2). 
       
   475 // BY files are exported according to their layer.
       
   476 #if __GNUC__ >= 3
       
   477 #define CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customer/app/exported
       
   478 #define CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customer/mw/exported
       
   479 #define CUSTOMER_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
       
   480 #define CUSTOMER_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customer/os/exported
       
   481 #else
       
   482 #define CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customer/app/##exported
       
   483 #define CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customer/mw/##exported
       
   484 #define CUSTOMER_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
       
   485 #define CUSTOMER_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customer/os/##exported
       
   486 #endif
       
   487 
       
   488 // Following three definitions are used for exporting IBY files to 
       
   489 // Variant Customer part, (ROFS3). IBY files are exported according to 
       
   490 // their layer.
       
   491 #if __GNUC__ >= 3
       
   492 #define CUSTOMER_VARIANT_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customervariant/app/exported
       
   493 #define CUSTOMER_VARIANT_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customervariant/mw/exported
       
   494 #define CUSTOMER_VARIANT_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
       
   495 #define CUSTOMER_VARIANT_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customervariant/os/exported
       
   496 #else
       
   497 #define CUSTOMER_VARIANT_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customervariant/app/##exported
       
   498 #define CUSTOMER_VARIANT_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customervariant/mw/##exported
       
   499 #define CUSTOMER_VARIANT_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
       
   500 #define CUSTOMER_VARIANT_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customervariant/os/##exported
       
   501 #endif
       
   502 
       
   503 
       
   504 // Following definition is used for exporting tools and stubs IBY files to 
       
   505 // Core image.
       
   506 #if __GNUC__ >= 3
       
   507 #define CORE_IBY_EXPORT_PATH(path,exported)  /epoc32/rom/include/core/path/exported
       
   508 #else
       
   509 #define CORE_IBY_EXPORT_PATH(path,exported)  /epoc32/rom/include/core/##path##/##exported
       
   510 #endif
       
   511 
       
   512 /**
       
   513 * ---------------------------------------
       
   514 * Location, where the localization .loc file should be exported
       
   515 * ---------------------------------------
       
   516 */
       
   517 // Location, where the os layer localization .loc file should be 
       
   518 // exported
       
   519 #if __GNUC__ >= 3
       
   520 // Deprecated: use the OS_LAYER_LOC_EXPORT_PATH instead
       
   521 #define OSEXT_LAYER_LOC_EXPORT_PATH(exported) do not use intentionally generates error
       
   522 #define OS_LAYER_LOC_EXPORT_PATH(exported) /epoc32/include/platform/loc/sc/exported
       
   523 
       
   524 // Location, where the middleware layer localization .loc file should be 
       
   525 // exported
       
   526 #define MW_LAYER_LOC_EXPORT_PATH(exported) /epoc32/include/platform/mw/loc/sc/exported
       
   527 
       
   528 // Location, where the application layer localization .loc file should be 
       
   529 // exported
       
   530 #define APP_LAYER_LOC_EXPORT_PATH(exported) /epoc32/include/platform/app/loc/sc/exported
       
   531 
       
   532 #else
       
   533 
       
   534 // Deprecated: use the OS_LAYER_LOC_EXPORT_PATH instead
       
   535 #define OSEXT_LAYER_LOC_EXPORT_PATH(exported) do not use intentionally generates error
       
   536 #define OS_LAYER_LOC_EXPORT_PATH(exported) /epoc32/include/platform/loc/sc/##exported
       
   537 
       
   538 // Location, where the middleware layer localization .loc file should be exported
       
   539 #define MW_LAYER_LOC_EXPORT_PATH(exported) /epoc32/include/platform/mw/loc/sc/##exported
       
   540 
       
   541 // Location, where the application layer localization .loc file should be exported
       
   542 #define APP_LAYER_LOC_EXPORT_PATH(exported) /epoc32/include/platform/app/loc/sc/##exported
       
   543 #endif
       
   544 
       
   545 /**
       
   546 * ---------------------------------------
       
   547 * Macros for Configuration tool migration. 
       
   548 * The below macros define the location under epoc32, where the confml 
       
   549 * (Configuration Markup Language) and crml (Central Repository Markup Language) 
       
   550 * files should be exported.
       
   551 * ---------------------------------------
       
   552 */
       
   553 #if __GNUC__ >= 3
       
   554 #define CONFML_EXPORT_PATH(file,category)           /epoc32/rom/config/confml_data/category/file
       
   555 #define CRML_EXPORT_PATH(file,category)             /epoc32/rom/config/confml_data/category/file
       
   556 #define GCFML_EXPORT_PATH(file,category)            /epoc32/rom/config/confml_data/category/file
       
   557 #define CONFML_CONFIG_EXPORT_PATH(file,category)    /epoc32/rom/config/confml_data/category/config/file
       
   558 #else
       
   559 #define CONFML_EXPORT_PATH(file,category)           /epoc32/rom/config/confml_data/##category##/##file
       
   560 #define CRML_EXPORT_PATH(file,category)             /epoc32/rom/config/confml_data/##category##/##file
       
   561 #define GCFML_EXPORT_PATH(file,category)            /epoc32/rom/config/confml_data/##category##/##file
       
   562 #define CONFML_CONFIG_EXPORT_PATH(file,category)    /epoc32/rom/config/confml_data/##category##/config/##file
       
   563 #endif
       
   564 
       
   565 #define APP_LAYER_CONFML(exported)                  CONFML_EXPORT_PATH(exported,s60)
       
   566 #define APP_LAYER_CRML(exported)                    CRML_EXPORT_PATH(exported,s60)
       
   567 #define APP_LAYER_GCFML(exported)                   GCFML_EXPORT_PATH(exported,s60)
       
   568 #define APP_LAYER_CONFML_CONFIG(exported)           CONFML_CONFIG_EXPORT_PATH(exported,s60)
       
   569                                                     
       
   570 #define MW_LAYER_CONFML(exported)                   CONFML_EXPORT_PATH(exported,s60)
       
   571 #define MW_LAYER_CRML(exported)                     CRML_EXPORT_PATH(exported,s60)
       
   572 #define MW_LAYER_GCFML(exported)                    GCFML_EXPORT_PATH(exported,s60)
       
   573 #define MW_LAYER_CONFML_CONFIG(exported)            CONFML_CONFIG_EXPORT_PATH(exported,s60)
       
   574        
       
   575 // Deprecate: Use the OS_LAYER_* macros instead of OSEXT_LAYER_*                                             
       
   576 #define OSEXT_LAYER_CONFML(exported)                do not use intentionally generates error
       
   577 #define OSEXT_LAYER_CRML(exported)                  do not use intentionally generates error
       
   578 #define OSEXT_LAYER_GCFML(exported)                 do not use intentionally generates error
       
   579 #define OSEXT_LAYER_CONFML_CONFIG(exported)         do not use intentionally generates error
       
   580 #define OS_LAYER_CONFML(exported)                   CONFML_EXPORT_PATH(exported,s60)
       
   581 #define OS_LAYER_CRML(exported)                     CRML_EXPORT_PATH(exported,s60)
       
   582 #define OS_LAYER_GCFML(exported)                    GCFML_EXPORT_PATH(exported,s60)
       
   583 #define OS_LAYER_CONFML_CONFIG(exported)            CONFML_CONFIG_EXPORT_PATH(exported,s60)
    23 
   584 
    24 #endif  // end of PLATFORM_PATHS_HRH
   585 #endif  // end of PLATFORM_PATHS_HRH