2 # ==============================================================================
3 # Name : platform_paths.prf
5 # Interface : Platform Path Definitions API for Qt/S60
6 # Description : Predefined include paths to be used in the pro-files for the
7 # components in the layered model. There is one definition for
8 # each layer. The pro-file should use the statement that is
9 # intended for the same layer as where the pro-file resides.
13 # Note: this file gets automatically added to all Qt/S60 projects
15 # Variable usages to add the system include paths
17 # The include paths has to be related to the layer in which your SW
18 # resides. Thus as an example: a component residing in middleware
19 # layer should use the MW specific macro.
21 # INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
22 # INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
23 # INCLUDEPATH += $$OS_LAYER_SYSTEMINCLUDE
25 # If there is a need to include public headers of some S60 component,
26 # various *_EXPORT_PATH macros can be utilized:
28 # INCLUDEPATH += $$OS_LAYER_PUBLIC_EXPORT_PATH(somecomponent)
30 # Variables related to using various parts of stdapis:
32 # To use STLLIB you need to have this in your pro-file:
34 # QMAKE_CXXFLAGS.CW *= $$STLLIB_USAGE_CW_FLAGS
35 # DEFINES *= $$STLLIB_USAGE_DEFINES
37 # Depending on what module you are using from stdapis you need to have
38 # one or more of the following variables in your pro-file.
40 # INCLUDEPATH += $$OS_LAYER_LIBC_SYSTEMINCLUDE
41 # INCLUDEPATH += $$OS_LAYER_GLIB_SYSTEMINCLUDE
42 # INCLUDEPATH += $$OS_LAYER_SSL_SYSTEMINCLUDE
43 # INCLUDEPATH += $$OS_LAYER_STDCPP_SYSTEMINCLUDE
44 # INCLUDEPATH += $$OS_LAYER_BOOST_SYSTEMINCLUDE
45 # INCLUDEPATH += $$OS_LAYER_DBUS_SYSTEMINCLUDE
46 # INCLUDEPATH += $$OS_LAYER_LIBUTILITY_SYSTEMINCLUDE
51 # ==============================================================================
53 exists($${EPOCROOT}epoc32/include/platform_paths.prf) {
55 # Load platform specific paths
56 load($${EPOCROOT}epoc32/include/platform_paths.prf)
60 # No platform specific paths provided, use default paths
62 exists($${EPOCROOT}epoc32/include/mw) { # New SF structure
64 # ---------------------------------------
65 # Location, where the applications layer specific public headers are exported
66 # ---------------------------------------
68 defineReplace(APP_LAYER_SDK_EXPORT_PATH) {
69 return (/epoc32/include/app/$$1)
71 defineReplace(APP_LAYER_PUBLIC_EXPORT_PATH) {
72 return (/epoc32/include/app/$$1)
75 # ---------------------------------------
76 # Location, where the applications layer specific platform headers are exported
77 # ---------------------------------------
79 defineReplace(APP_LAYER_DOMAIN_EXPORT_PATH) {
80 return (/epoc32/include/platform/app/$$1)
82 defineReplace(APP_LAYER_PLATFORM_EXPORT_PATH) {
83 return (/epoc32/include/platform/app/$$1)
86 # ---------------------------------------
87 # Location, where the middleware layer specific public headers are exported
88 # ---------------------------------------
90 defineReplace(MW_LAYER_SDK_EXPORT_PATH) {
91 return (/epoc32/include/mw/$$1)
93 defineReplace(MW_LAYER_PUBLIC_EXPORT_PATH) {
94 return (/epoc32/include/mw/$$1)
97 # ---------------------------------------
98 # Location, where the middleware layer specific platform headers are exported
99 # ---------------------------------------
101 defineReplace(MW_LAYER_DOMAIN_EXPORT_PATH) {
102 return (/epoc32/include/platform/mw/$$1)
104 defineReplace(MW_LAYER_PLATFORM_EXPORT_PATH) {
105 return (/epoc32/include/platform/mw/$$1)
108 # ---------------------------------------
109 # Location, where the os layer specific public headers are exported
110 # ---------------------------------------
112 defineReplace(OSEXT_LAYER_SDK_EXPORT_PATH) {
113 return (/epoc32/include/$$1)
115 # WARNING: If the following path changes see the exists() function around line 219
116 defineReplace(OS_LAYER_PUBLIC_EXPORT_PATH) {
117 return (/epoc32/include/$$1)
120 # ---------------------------------------
121 # Location, where the os specific platform headers are exported
122 # ---------------------------------------
124 defineReplace(OSEXT_LAYER_DOMAIN_EXPORT_PATH) {
125 return (/epoc32/include/platform/$$1)
127 defineReplace(OS_LAYER_PLATFORM_EXPORT_PATH) {
128 return (/epoc32/include/platform/$$1)
131 # ---------------------------------------
132 # General comments about the 3 define statements related to include paths:
133 # 1) the /epoc32/include/oem is now defined there for backward compability.
134 # Once the directory is empty, the directory will be removed. However this
135 # enables us to ensure that if you use these define statements => you do
136 # not have to remove the statements later on, when the directory no longer
138 # 2) These statements should be enough in normal cases. For certain specific
139 # cases you might need to add some specific directory from /epoc32/include
140 # (for instance /epoc32/include/ecom).
141 # In normal cases the include staments in code should be relative to one of
142 # the system include paths, but in certain cases, the included files requires
143 # that the subdirectory is also part of the system include paths.
144 # ---------------------------------------
146 # This variable defines the include paths, which are intended to be
147 # used in the pro-files that are part of the applications-layer. It includes all
148 # the needed directories from the /epoc32/include, that are valid ones for the
149 # application-layer components.
151 # Applications layer is the last one in the list, since most likely the most of
152 # the headers come from middleware or os-layer => thus they are first.
154 APP_LAYER_SYSTEMINCLUDE = \
157 /epoc32/include/platform/mw \
158 /epoc32/include/platform \
159 /epoc32/include/app \
160 /epoc32/include/platform/app \
161 /epoc32/include/platform/loc \
162 /epoc32/include/platform/mw/loc \
163 /epoc32/include/platform/app/loc \
164 /epoc32/include/platform/loc/sc \
165 /epoc32/include/platform/mw/loc/sc \
166 /epoc32/include/platform/app/loc/sc
168 # This define statements defines the include paths, which are intended to be
169 # used in the pro-files that are part of the middleware-layer. It includes all
170 # the needed directories from the /epoc32/include, that are valid ones for the
171 # middleware-layer components.
173 MW_LAYER_SYSTEMINCLUDE = \
176 /epoc32/include/platform/mw \
177 /epoc32/include/platform \
178 /epoc32/include/platform/loc \
179 /epoc32/include/platform/mw/loc \
180 /epoc32/include/platform/loc/sc \
181 /epoc32/include/platform/mw/loc/sc
183 # This define statements defines the include paths, which are intended to be
184 # used in the pro-files that are part of the osextensions-layer. It includes all
185 # the needed directories from the /epoc32/include, that are valid ones for the
186 # os-layer components.
188 OS_LAYER_SYSTEMINCLUDE = \
190 /epoc32/include/platform \
191 /epoc32/include/platform/loc \
192 /epoc32/include/platform/loc/sc
194 # This define statements defines the include paths, which are intended to be
195 # used in the pro-files that are part of the os-layer. This is intended
196 # to be only used by those components which need to use in their mmp-file either
197 # kern_ext.mmh or nkern_ext.mmh. Reason is that those
198 # 2 files already contain the /epoc32/include as system include path.
200 OS_LAYER_KERNEL_SYSTEMINCLUDE = \
201 /epoc32/include/platform
204 # ---------------------------------------
205 # Definitions that also define the systeminclude paths for various
206 # part of stdapis. Append to INCLUDEPATH in pro-file.
207 # ---------------------------------------
209 OS_LAYER_LIBC_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis) \
210 $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/sys)
212 OS_LAYER_GLIB_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0) \
213 $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0/glib) \
214 $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0/gObject)
216 OS_LAYER_SSL_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/openssl)
218 # stlportv5 is preferred over stlport as it has the throwing version of operator new
219 exists($${EPOCROOT}epoc32/include/stdapis/stlport) \
220 :!exists($${EPOCROOT}epoc32/include/stdapis/stlportv5) {
221 OS_LAYER_STDCPP_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlport)
223 OS_LAYER_STDCPP_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlportv5)
226 OS_LAYER_BOOST_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/boost)
228 OS_LAYER_DBUS_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/dbus-1.0) \
229 $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/dbus-1.0/dbus)
231 OS_LAYER_LIBUTILITY_SYSTEMINCLUDE = $$OS_LAYER_PLATFORM_EXPORT_PATH(stdapis/utility)
233 # ---------------------------------------
234 # Definitions to export IBY files to different folders where they will be taken
236 # ---------------------------------------
238 defineReplace(CORE_APP_LAYER_IBY_EXPORT_PATH) {
239 return(/epoc32/rom/include/core/app/$$1)
241 defineReplace(CORE_MW_LAYER_IBY_EXPORT_PATH) {
242 return(/epoc32/rom/include/core/mw/$$1)
244 defineReplace(CORE_OSEXT_LAYER_IBY_EXPORT_PATH) {
245 return(/epoc32/rom/include/core/os/$$1)
247 defineReplace(CORE_OS_LAYER_IBY_EXPORT_PATH) {
248 return(/epoc32/rom/include/core/os/$$1)
250 defineReplace(CORE_ADAPT_LAYER_IBY_EXPORT_PATH) {
251 return(/epoc32/rom/include/$$1)
254 # You need to define the following in pro-file, if you are using the stllib:
255 # QMAKE_CXXFLAGS.CW *= $$STLLIB_USAGE_CW_FLAGS
256 # DEFINES *= $$STLLIB_USAGE_DEFINES
257 STLLIB_USAGE_CW_FLAGS = "-wchar_t on"
258 STLLIB_USAGE_DEFINES = _WCHAR_T_DECLARED
260 } else { # Old pre-SF structure
262 # ---------------------------------------
263 # Location, where the applications layer specific public headers are exported
264 # ---------------------------------------
266 defineReplace(APP_LAYER_SDK_EXPORT_PATH) {
267 return (/epoc32/include/applications/$$1)
269 defineReplace(APP_LAYER_PUBLIC_EXPORT_PATH) {
270 return (/epoc32/include/applications/$$1)
273 # ---------------------------------------
274 # Location, where the applications layer specific platform headers are exported
275 # ---------------------------------------
277 defineReplace(APP_LAYER_DOMAIN_EXPORT_PATH) {
278 return (/epoc32/include/domain/applications/$$1)
280 defineReplace(APP_LAYER_PLATFORM_EXPORT_PATH) {
281 return (/epoc32/include/domain/applications/$$1)
284 # ---------------------------------------
285 # Location, where the middleware layer specific public headers are exported
286 # ---------------------------------------
288 defineReplace(MW_LAYER_SDK_EXPORT_PATH) {
289 return (/epoc32/include/middleware/$$1)
291 defineReplace(MW_LAYER_PUBLIC_EXPORT_PATH) {
292 return (/epoc32/include/middleware/$$1)
295 # ---------------------------------------
296 # Location, where the middleware layer specific platform headers are exported
297 # ---------------------------------------
299 defineReplace(MW_LAYER_DOMAIN_EXPORT_PATH) {
300 return (/epoc32/include/domain/middleware/$$1)
302 defineReplace(MW_LAYER_PLATFORM_EXPORT_PATH) {
303 return (/epoc32/include/domain/middleware/$$1)
306 # ---------------------------------------
307 # Location, where the os layer specific public headers are exported
308 # ---------------------------------------
310 defineReplace(OSEXT_LAYER_SDK_EXPORT_PATH) {
311 return (/epoc32/include/osextensions/$$1)
313 # WARNING: If the following path changes see the exists() function around line 430
314 defineReplace(OS_LAYER_PUBLIC_EXPORT_PATH) {
315 return (/epoc32/include/osextensions/$$1)
318 # ---------------------------------------
319 # Location, where the os specific platform headers are exported
320 # ---------------------------------------
322 defineReplace(OSEXT_LAYER_DOMAIN_EXPORT_PATH) {
323 return (/epoc32/include/domain/osextensions/$$1)
325 defineReplace(OS_LAYER_PLATFORM_EXPORT_PATH) {
326 return (/epoc32/include/domain/osextensions/$$1)
329 # ---------------------------------------
330 # General comments about the 3 define statements related to include paths:
331 # 1) the /epoc32/include/oem is now defined there for backward compability.
332 # Once the directory is empty, the directory will be removed. However this
333 # enables us to ensure that if you use these define statements => you do
334 # not have to remove the statements later on, when the directory no longer
336 # 2) These statements should be enough in normal cases. For certain specific
337 # cases you might need to add some specific directory from /epoc32/include
338 # (for instance /epoc32/include/ecom).
339 # In normal cases the include staments in code should be relative to one of
340 # the system include paths, but in certain cases, the included files requires
341 # that the subdirectory is also part of the system include paths.
342 # ---------------------------------------
344 # This variable defines the include paths, which are intended to be
345 # used in the pro-files that are part of the applications-layer. It includes all
346 # the needed directories from the /epoc32/include, that are valid ones for the
347 # application-layer components.
349 # Applications layer is the last one in the list, since most likely the most of
350 # the headers come from middleware or os-layer => thus they are first.
352 APP_LAYER_SYSTEMINCLUDE = \
354 /epoc32/include/oem \
355 /epoc32/include/middleware \
356 /epoc32/include/domain/middleware \
357 /epoc32/include/osextensions \
358 /epoc32/include/domain/osextensions \
359 /epoc32/include/applications \
360 /epoc32/include/domain/applications \
361 /epoc32/include/domain/osextensions/loc \
362 /epoc32/include/domain/middleware/loc \
363 /epoc32/include/domain/applications/loc \
364 /epoc32/include/domain/osextensions/loc/sc \
365 /epoc32/include/domain/middleware/loc/sc \
366 /epoc32/include/domain/applications/loc/sc
368 # This define statements defines the include paths, which are intended to be
369 # used in the pro-files that are part of the middleware-layer. It includes all
370 # the needed directories from the /epoc32/include, that are valid ones for the
371 # middleware-layer components.
373 MW_LAYER_SYSTEMINCLUDE = \
375 /epoc32/include/oem \
376 /epoc32/include/middleware \
377 /epoc32/include/domain/middleware \
378 /epoc32/include/osextensions \
379 /epoc32/include/domain/osextensions \
380 /epoc32/include/domain/osextensions/loc \
381 /epoc32/include/domain/middleware/loc \
382 /epoc32/include/domain/osextensions/loc/sc \
383 /epoc32/include/domain/middleware/loc/sc
385 # This define statements defines the include paths, which are intended to be
386 # used in the pro-files that are part of the osextensions-layer. It includes all
387 # the needed directories from the /epoc32/include, that are valid ones for the
388 # os-layer components.
390 OS_LAYER_SYSTEMINCLUDE = \
392 /epoc32/include/oem \
393 /epoc32/include/osextensions \
394 /epoc32/include/domain/osextensions \
395 /epoc32/include/domain/osextensions/loc \
396 /epoc32/include/domain/osextensions/loc/sc
398 # This define statements defines the include paths, which are intended to be
399 # used in the pro-files that are part of the os-layer. This is intended
400 # to be only used by those components which need to use in their mmp-file either
401 # kern_ext.mmh or nkern_ext.mmh. Reason is that those
402 # 2 files already contain the /epoc32/include as system include path.
404 OS_LAYER_KERNEL_SYSTEMINCLUDE = \
405 /epoc32/include/oem \
406 /epoc32/include/osextensions \
407 /epoc32/include/domain/osextensions
410 # ---------------------------------------
411 # Definitions that also define the systeminclude paths for various
412 # part of stdapis. Append to INCLUDEPATH in pro-file.
413 # ---------------------------------------
415 OS_LAYER_LIBC_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis) \
416 $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/sys) \
417 /epoc32/include/stdapis \
418 /epoc32/include/stdapis/sys
420 OS_LAYER_GLIB_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0) \
421 $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0/glib) \
422 $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0/gObject) \
423 /epoc32/include/stdapis/glib-2.0 \
424 /epoc32/include/stdapis/glib-2.0/glib \
425 /epoc32/include/stdapis/glib-2.0/gObject
427 OS_LAYER_SSL_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/openssl) \
428 /epoc32/include/stdapis/openssl
430 # stlportv5 is preferred over stlport as it has the throwing version of operator new
431 OS_LAYER_STDCPP_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlportv5) \
432 /epoc32/include/stdapis/stlportv5
433 exists($${EPOCROOT}epoc32/include/osextensions/stdapis/stlport) \
434 |exists($${EPOCROOT}epoc32/include/stdapis/stlport) {
435 !exists($${EPOCROOT}epoc32/include/osextensions/stdapis/stlportv5) \
436 :!exists($${EPOCROOT}epoc32/include/stdapis/stlportv5) {
437 OS_LAYER_STDCPP_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlport) \
438 /epoc32/include/stdapis/stlport
442 OS_LAYER_BOOST_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/boost) \
443 /epoc32/include/stdapis/boost
445 OS_LAYER_DBUS_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/dbus-1.0) \
446 $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/dbus-1.0/dbus) \
447 /epoc32/include/stdapis/dbus-1.0 \
448 /epoc32/include/stdapis/dbus-1.0/dbus
450 OS_LAYER_LIBUTILITY_SYSTEMINCLUDE = $$OS_LAYER_PLATFORM_EXPORT_PATH(stdapis/utility) \
451 /epoc32/include/stdapis/utility
453 # ---------------------------------------
454 # Definitions to export IBY files to different folders where they will be taken
456 # ---------------------------------------
458 defineReplace(CORE_APP_LAYER_IBY_EXPORT_PATH) {
459 return(/epoc32/rom/include/core/app/$$1)
461 defineReplace(CORE_MW_LAYER_IBY_EXPORT_PATH) {
462 return(/epoc32/rom/include/core/mw/$$1)
464 defineReplace(CORE_OSEXT_LAYER_IBY_EXPORT_PATH) {
465 return(/epoc32/rom/include/core/osext/$$1)
467 defineReplace(CORE_OS_LAYER_IBY_EXPORT_PATH) {
468 return(/epoc32/rom/include/core/osext/$$1)
470 defineReplace(CORE_ADAPT_LAYER_IBY_EXPORT_PATH) {
471 return(/epoc32/rom/include/$$1)
474 # You need to define the following in pro-file, if you are using the stllib:
475 # QMAKE_CXXFLAGS.CW *= $$STLLIB_USAGE_CW_FLAGS
476 # DEFINES *= $$STLLIB_USAGE_DEFINES
477 STLLIB_USAGE_CW_FLAGS = "-wchar_t on"
478 STLLIB_USAGE_DEFINES = _WCHAR_T_DECLARED