Ignore:
Timestamp:
May 5, 2011, 5:36:53 AM (15 years ago)
Author:
Dmitry A. Kuminov
Message:

trunk: Merged in qt 4.7.2 sources from branches/vendor/nokia/qt.

Location:
trunk
Files:
12 edited
11 copied

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/mkspecs/features/symbian/add_mmp_rules.prf

    r769 r846  
    2424                varVal = $$eval($${var}.default)
    2525            }
    26             !isEmpty(varVal): libBlock += "$$join(varVal,$$escape_expand(\n))"
     26            !isEmpty(varVal): libBlock += "$$join(varVal,$$escape_expand(\\n))"
    2727        }
    2828
  • trunk/mkspecs/features/symbian/application_icon.prf

    r769 r846  
    11load(data_caging_paths)
    22
    3 # If no_icon keyword exist, the S60 UI app is just made hidden. This because S60 app FW
    4 # requires the registration resource file to exist always
    5 contains( CONFIG, no_icon ) {
    6     symbian:RSS_RULES += "hidden = KAppIsHidden;"
    7     CONFIG -= no_icon
    8 } else {
    9 # There is no point in compiling the MIF icon if no_icon CONFIGS is set
    10     !isEmpty(ICON) {
    11 
    12         !count(ICON, 1) {
    13             ICON = $$first(ICON)
    14             warning("Only first icon specified in ICON variable is used: $$ICON")
    15         }
    16 
    17         # Try to produce indentical string to fixedTarget in SymbianMakefileGenerator, replaced chars taken
    18         # from SymbianMakefileGenerator::removeSpecialCharacters.
    19         #
    20         # Note: it is not a major problem even baseTarget is not 100% identical to fixedTarget since qmake
    21         # only uses filename from RSS_RULES.icon_file when referring to icon file name.
    22         baseTarget = $$basename(TARGET)
    23         baseTarget = $$replace(baseTarget, /,_)
    24         baseTarget = $$replace(baseTarget, \\,_)
    25         baseTarget = $$replace(baseTarget, -,_)
    26         baseTarget = $$replace(baseTarget, :,_)
    27         baseTarget = $$replace(baseTarget, \.,_)
    28         baseTarget = $$replace(baseTarget, " ",_)
    29 
    30         # Note: symbian-sbsv2 builds can't utilize extra compiler for mifconv, so ICON handling is done in code
    31         symbian-abld {
    32             #Makefile: requires paths with backslash
    33             ICON = $$replace( ICON, /, \\)
    34 
    35             # Extra compiler rules for mifconv
    36             mifconv.output = ${ZDIR}$$APP_RESOURCE_DIR/$${baseTarget}.mif
    37             # Based on: http://www.forum.nokia.com/document/Cpp_Developers_Library
    38             # svg-t icons should always use /c32 depth
    39             mifconv.commands = mifconv ${QMAKE_FILE_OUT} /c32 ${QMAKE_FILE_IN}
    40             mifconv.input = ICON
    41             mifconv.CONFIG = no_link combine
    42             # target_predeps together with combine seems not to work correctly, lets define it by ourselves
    43             PRE_TARGETDEPS += $$mifconv.output
    44             QMAKE_EXTRA_COMPILERS += mifconv
    45         }
    46         # Rules to use generated MIF file from symbian resources
    47         RSS_RULES.number_of_icons = $$size(ICON)
    48         RSS_RULES.icon_file = $$APP_RESOURCE_DIR/$${baseTarget}.mif
     3contains(CONFIG, no_icon) {
     4    # If no_icon keyword exist, the S60 UI app is just made hidden. This because S60 app FW
     5    # requires the registration resource file to exist always
     6    contains(QT, gui):contains(CONFIG, qt) {
     7        symbian:RSS_RULES += "hidden = KAppIsHidden;"
     8        CONFIG -= no_icon
    499    }
    5010}
    5111
     12!contains(CONFIG, no_icon) {
     13    baseTarget = $$symbianRemoveSpecialCharacters($$basename(TARGET))
     14    contains(baseTarget, "^.*\\..*$") {
     15        CONFIG += no_icon
     16        ICON =
     17        warning("Symbian resources do not support '.' character in TARGET, skipping resource generation.")
     18    } else {
     19        symbian-abld|symbian-sbsv2 {
     20            resourceZDir = $$EPOCROOT$$HW_ZDIR$$APP_RESOURCE_DIR
     21            regZDir = $$EPOCROOT$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR
     22        } else {
     23            contains(DESTDIR, "/.*") {
     24                resourceZDir = $$DESTDIR
     25            } else:isEmpty(DESTDIR) {
     26                resourceZDir = $$OUT_PWD
     27            } else {
     28                resourceZDir = $$OUT_PWD/$$DESTDIR
     29            }
     30            regZDir = $$resourceZDir
     31        }
     32
     33        default_resource_deployment.sources += $$resourceZDir/$${baseTarget}.rsc
     34        default_resource_deployment.path = $$APP_RESOURCE_DIR
     35        default_reg_deployment.sources += $$regZDir/$${baseTarget}_reg.rsc
     36        default_reg_deployment.path = $$REG_RESOURCE_IMPORT_DIR
     37
     38        !isEmpty(ICON) {
     39            !count(ICON, 1) {
     40                ICON = $$first(ICON)
     41                warning("Only first icon specified in ICON variable is used: $$ICON")
     42            }
     43
     44            # Note: symbian-sbsv2 builds can't utilize extra compiler for mifconv, so ICON handling is done in code
     45            !symbian-sbsv2 {
     46                # Absolute path required for shadow builds.
     47                # However, in older Symbian environments abld toolchain can't handle even moderately long
     48                # paths, so don't force absolute there.
     49                !symbian-abld:!contains(ICON, "^(/|\\\\|.:).*"):ICON = $$_PRO_FILE_PWD_/$$ICON
     50
     51                #Makefile: requires paths with backslash
     52                ICON_backslashed = $$ICON
     53
     54                symbian-abld {
     55                    # ${ZDIR} is defined in Makefile
     56                    mifIconZDir = ${ZDIR}$$APP_RESOURCE_DIR
     57                } else {
     58                    mifIconZDir = $$resourceZDir
     59                }
     60
     61                # Extra compiler rules for mifconv
     62                mifconv.target = $$mifIconZDir/$${baseTarget}.mif
     63                contains(QMAKE_HOST.os, "Windows") {
     64                    ICON_backslashed = $$replace(ICON_backslashed, /, \\)
     65                    mifconv.target = $$replace(mifconv.target, /, \\)
     66                }
     67                # Based on: http://www.forum.nokia.com/document/Cpp_Developers_Library
     68                # svg-t icons should always use /c32 depth
     69                mifconv.commands = mifconv $$mifconv.target /c32 $$ICON_backslashed
     70
     71                mifconv.depends = $$ICON
     72                PRE_TARGETDEPS += $$mifconv.target
     73                QMAKE_EXTRA_TARGETS += mifconv
     74                QMAKE_DISTCLEAN += $$mifconv.target
     75            }
     76            # Rules to use generated MIF file from symbian resources
     77            RSS_RULES.number_of_icons = $$size(ICON_backslashed)
     78            RSS_RULES.icon_file = $$APP_RESOURCE_DIR/$${baseTarget}.mif
     79
     80            default_resource_deployment.sources += $$resourceZDir/$${baseTarget}.mif
     81        }
     82    }
     83}
     84
     85
  • trunk/mkspecs/features/symbian/armcc_warnings.prf

    r561 r846  
     1# 68:   integer conversion resulted in a change of sign (sounds useful, but it's
     2#       buggy and is reported even in places where it makes no sense)
    13# 111:  Statement is unreachable
    24# 185:  Dynamic initialization in unreachable code
     5# 187:  use of "=" where "==" may have been intended
    36# 191:  Type qualifier is meaningless on cast type
    47# 368:  class "<class>" defines no constructor to initialize the following: <member>
    58#       (Disabled because there are other ways of assigning besides constructors)
     9# 830:  function "xxx" has no corresponding operator delete (to be called if an
     10#       exception is thrown during initialization of an allocated object) (used a
     11#       lot in 3rd party code)
     12# 997:  function "xxx" is hidden by "yyy" -- virtual function override intended?
     13#       (used all over the place in the Symbian SDK)
    614# 1293: Assignment in condition
    715# 1294: pre-ANSI C style functions declarations (used a lot in 3rd party code)
    816# 2874: <variable> may be used before being set (this one sounds useful, but
    917#       it's output also for class instances, making it useless in practice)
    10 QMAKE_CFLAGS.ARMCC += --diag_suppress 111,185,191,368,1293,1294,2874
     18QMAKE_CFLAGS.ARMCC += --diag_suppress 68,111,185,187,191,368,830,997,1293,1294,2874
     19QMAKE_CXXFLAGS.ARMCC += --diag_suppress 68,111,185,187,191,368,830,997,1293,1294,2874
    1120
    1221# 6780: <origvis> visibility removed from symbol '<symname>' through <impexp>
  • trunk/mkspecs/features/symbian/data_caging_paths.prf

    r769 r846  
    7575}
    7676
    77 isEmpty(QT_PLUGINS_BASE_DIR): QT_PLUGINS_BASE_DIR = /$$RESOURCE_FILES_DIR/qt$${QT_LIBINFIX}/plugins
    7877isEmpty(HW_ZDIR): HW_ZDIR = epoc32/data/z
    7978isEmpty(REG_RESOURCE_DIR): REG_RESOURCE_DIR = /private/10003a3f/apps
    8079isEmpty(REG_RESOURCE_IMPORT_DIR): REG_RESOURCE_IMPORT_DIR = /private/10003a3f/import/apps
     80isEmpty(APP_PRIVATE_DIR_BASE): APP_PRIVATE_DIR_BASE = /private
  • trunk/mkspecs/features/symbian/def_files.prf

    r651 r846  
    44CONFIG -= def_files_disabled
    55
    6 # Firstly, if the MMP_RULES already contain a defBlock variable, don't generate another one
    7 # (this bit is slightly magic, because it depends upon everyone creating their DEFFILE statements
    8 # in a defBlock variable; but otherwise we have to expand MMP_RULES then scan for the DEFFILE keyword)
    9 !contains(MMP_RULES, defBlock) {
    10     # Apps are executables on Symbian, so don't have exports, and therefore don't have DEF files
    11     # Plugins use standard DEF files, which qmake generates, so shouldn't be using these DEFFILE
    12     # statements - they use the qmake generated statements instead
    13     # Static libraries obviously don't have DEF files, as they don't take part in dynamic linkage
    14     !contains(TEMPLATE, app):!contains(CONFIG, plugin):!contains(CONFIG, staticlib): {
    15         !isEmpty(defFilePath) {
    16             defBlock = \
    17             "$${LITERAL_HASH}ifdef WINSCW" \
    18             "DEFFILE $$defFilePath/bwins/$${TARGET}.def" \
    19             "$${LITERAL_HASH}elif defined EABI" \
    20             "DEFFILE $$defFilePath/eabi/$${TARGET}.def" \
    21             "$${LITERAL_HASH}endif"
    22         } else {
    23             # If defFilePath is not defined, then put the folders containing the DEF files at the
    24             # same level as the .pro (and generated MMP) file(s)
    25             defBlock = \
    26             "$${LITERAL_HASH}ifdef WINSCW" \
    27             "DEFFILE ./bwins/$${TARGET}.def" \
    28             "$${LITERAL_HASH}elif defined EABI" \
    29             "DEFFILE ./eabi/$${TARGET}.def" \
    30             "$${LITERAL_HASH}endif"
     6# We need a target name without the INFIX'ed part, since DEF files are not infixed.
     7equals(QMAKE_TARGET_PRODUCT, Qt4)|equals(QMAKE_TARGET_PRODUCT, QTestLib):clean_TARGET = $$replace(TARGET, "$${QT_LIBINFIX}$", "")
     8else:clean_TARGET = $$TARGET
     9
     10symbian-abld|symbian-sbsv2 {
     11    # Firstly, if the MMP_RULES already contain a defBlock variable, don't generate another one
     12    # (this bit is slightly magic, because it depends upon everyone creating their DEFFILE statements
     13    # in a defBlock variable; but otherwise we have to expand MMP_RULES then scan for the DEFFILE keyword)
     14    # Similarly, explicit EXPORTUNFROZEN should block adding defBlock
     15    !contains(MMP_RULES, defBlock):!contains(MMP_RULES, EXPORTUNFROZEN) {
     16        # Apps are executables on Symbian, so don't have exports, and therefore don't have DEF files
     17        # Plugins use standard DEF files, which qmake generates, so shouldn't be using these DEFFILE
     18        # statements - they use the qmake generated statements instead
     19        # Static libraries obviously don't have DEF files, as they don't take part in dynamic linkage
     20        !contains(TEMPLATE, app):!contains(CONFIG, plugin):!contains(CONFIG, staticlib): {
     21            !isEmpty(DEF_FILE) {
     22                defBlock = \
     23                "$${LITERAL_HASH}ifdef WINSCW" \
     24                "DEFFILE $$DEF_FILE/bwins/$${clean_TARGET}.def" \
     25                "$${LITERAL_HASH}elif defined EABI" \
     26                "DEFFILE $$DEF_FILE/eabi/$${clean_TARGET}.def" \
     27                "$${LITERAL_HASH}endif"
     28            } else:!isEmpty(defFilePath) {
     29                defBlock = \
     30                "$${LITERAL_HASH}ifdef WINSCW" \
     31                "DEFFILE $$defFilePath/bwins/$${clean_TARGET}.def" \
     32                "$${LITERAL_HASH}elif defined EABI" \
     33                "DEFFILE $$defFilePath/eabi/$${clean_TARGET}.def" \
     34                "$${LITERAL_HASH}endif"
     35            } else {
     36                # If defFilePath is not defined, then put the folders containing the DEF files at the
     37                # same level as the .pro (and generated MMP) file(s)
     38                defBlock = \
     39                "$${LITERAL_HASH}ifdef WINSCW" \
     40                "DEFFILE ./bwins/$${clean_TARGET}.def" \
     41                "$${LITERAL_HASH}elif defined EABI" \
     42                "DEFFILE ./eabi/$${clean_TARGET}.def" \
     43                "$${LITERAL_HASH}endif"
     44            }
     45            MMP_RULES += defBlock
    3146        }
    32         MMP_RULES += defBlock
    3347    }
     48
     49} else:contains(TEMPLATE, lib):!contains(CONFIG, static):!contains(CONFIG, staticlib):!contains(CONFIG, plugin) {
     50    !isEmpty(DEF_FILE) {
     51        defFile = $$DEF_FILE
     52    } else {
     53        defFile = .
     54    }
     55    system("$$QMAKE_CHK_DIR_EXISTS $$_PRO_FILE_PWD_/$$defFile") {
     56        !exists("$$_PRO_FILE_PWD_/$$defFile/eabi") {
     57            system("$$QMAKE_MKDIR $$_PRO_FILE_PWD_/$$defFile/eabi")
     58        }
     59        elf2e32FileToAdd = $$_PRO_FILE_PWD_/$$defFile/eabi/$$basename(clean_TARGET)u.def
     60    } else {
     61        elf2e32FileToAdd = $$_PRO_FILE_PWD_/$$defFile
     62    }
     63    QMAKE_ELF2E32_FLAGS += "--definput=$$elf2e32FileToAdd"
     64
     65    symbianObjdir = $$OBJECTS_DIR
     66    isEmpty(symbianObjdir):symbianObjdir = .
     67
     68    freeze_target.target = freeze
     69    freeze_target.depends = first
     70    # The perl part is to convert to unix line endings and remove comments, which the s60 tools refuse to do.
     71    freeze_target.commands = $$QMAKE_COPY $$symbianObjdir/$${TARGET}.def $$elf2e32FileToAdd
     72    QMAKE_EXTRA_TARGETS += freeze_target
     73} else:contains(TEMPLATE, subdirs) {
     74    freeze_target.target = freeze
     75    freeze_target.CONFIG = recursive
     76    freeze_target.recurse = $$SUBDIRS
     77    QMAKE_EXTRA_TARGETS += freeze_target
     78} else {
     79    freeze_target.target = freeze
     80    freeze_target.commands =
     81    QMAKE_EXTRA_TARGETS += freeze_target
    3482}
  • trunk/mkspecs/features/symbian/def_files_disabled.prf

    r651 r846  
    99        # with EXPORTUNFROZEN enabled, new exports are included in the dll and dso/lib without
    1010        # needing to run abld/sbs freeze
    11         MMP_RULES += EXPORTUNFROZEN
     11        MMP_RULES *= EXPORTUNFROZEN
    1212    }
    1313}
  • trunk/mkspecs/features/symbian/default_post.prf

    r769 r846  
    44    contains(CONFIG, stdbinary) {
    55        QMAKE_LIBS +=
    6     } else:contains(QT, gui):contains(CONFIG,qt) {
    7         S60MAIN_LIBS = -leuser
    8         QMAKE_LIBS += -lqtmain$${QT_LIBINFIX}.lib $$S60MAIN_LIBS
     6    } else:contains(CONFIG,qt) {
     7        QMAKE_LIBS += $$QMAKE_LIBS_QT_ENTRY
    98    } else {
    10         QMAKE_LIBS += $$QMAKE_LIBS_QT_ENTRY
     9        QMAKE_LIBS += $$QMAKE_LIBS_NO_QT_ENTRY
    1110    }
     11
     12    contains(DESTDIR, "/.*") {
     13        default_bin_deployment.sources += $$DESTDIR/$$symbianRemoveSpecialCharacters($$basename(TARGET)).exe
     14    } else:isEmpty(DESTDIR) {
     15        default_bin_deployment.sources += $$OUT_PWD/$$symbianRemoveSpecialCharacters($$basename(TARGET)).exe
     16    } else {
     17        default_bin_deployment.sources += $$OUT_PWD/$$DESTDIR/$$symbianRemoveSpecialCharacters($$basename(TARGET)).exe
     18    }
     19    default_bin_deployment.path += /sys/bin
     20
     21    load(application_icon.prf)
    1222}
    1323contains(TEMPLATE, lib): {
     
    2737}
    2838
    29 contains(TEMPLATE, ".*app"):contains(QT, gui):contains(CONFIG,qt) {
    30     load(application_icon.prf)
     39isEmpty(TARGET.UID3):TARGET.UID3 = $$generate_uid("$${OUT_PWD}/$${TARGET}")
     40isEmpty(TARGET.UID2) {
     41    contains(CONFIG, stdbinary) {
     42        TARGET.UID2 = 0x20004C45
     43    } else {
     44        contains(TEMPLATE, app) {
     45            contains(QT, gui) {
     46                TARGET.UID2 = 0x100039CE
     47            } else {
     48                TARGET.UID2 = 0
     49            }
     50        } else:contains(TEMPLATE, lib):!contains(CONFIG, static):!contains(CONFIG, staticlib) {
     51            TARGET.UID2 = 0x1000008d
     52        }
     53    }
    3154}
     55
     56# Supports Symbian^3 and Symbian^4 by default and also S60 3.1, 3.2, and 5.0 if built against any of those.
     57platform_product_id = S60ProductID
     58platform_product_id = $$addLanguageDependentPkgItem(platform_product_id)
     59pkg_platform_dependencies = \
     60    "; Default HW/platform dependencies" \
     61    "[0x20022E6D],0,0,0,{$$platform_product_id}" \
     62    "[0x20032DE7],0,0,0,{$$platform_product_id}"
     63contains(S60_VERSION, 3.1)|contains(S60_VERSION, 3.2)|contains(S60_VERSION, 5.0) {
     64    pkg_platform_dependencies += \
     65        "[0x102032BE],0,0,0,{$$platform_product_id}" \
     66        "[0x102752AE],0,0,0,{$$platform_product_id}" \
     67        "[0x1028315F],0,0,0,{$$platform_product_id}"
     68}
  • trunk/mkspecs/features/symbian/moc.prf

    r561 r846  
    11load(moc)
    22
    3 RET = $$find(MOC_DIR, "(/|^)\.[^/]+/?$")
    4 !isEmpty(RET):{
    5     error("Symbian does not support directories starting with a dot. Please set MOC_DIR to a different value in your profile. MOC_DIR: $$MOC_DIR")
     3symbian-abld|symbian-sbsv2 {
     4    RET = $$find(MOC_DIR, "(/|^)\\.[^/]+/?$")
     5    !isEmpty(RET):{
     6        error("Symbian does not support directories starting with a dot. Please set MOC_DIR to a different value in your profile. MOC_DIR: $$MOC_DIR")
     7    }
     8
     9    RET = $$find(RCC_DIR, "(/|^)\\.[^/]+/?$")
     10    !isEmpty(RET):{
     11        error("Symbian does not support directories starting with a dot. Please set RCC_DIR to a different value in your profile. RCC_DIR: $$RCC_DIR")
     12    }
     13
     14    RET = $$find(OBJECTS_DIR, "(/|^)\\.[^/]+/?$")
     15    !isEmpty(RET):{
     16        error("Symbian does not support directories starting with a dot. Please set OBJECTS_DIR to a different value in your profile. OBJECTS_DIR: $$OBJECTS_DIR")
     17    }
    618}
    7 
    8 RET = $$find(RCC_DIR, "(/|^)\.[^/]+/?$")
    9 !isEmpty(RET):{
    10     error("Symbian does not support directories starting with a dot. Please set RCC_DIR to a different value in your profile. RCC_DIR: $$RCC_DIR")
    11 }
    12 
    13 RET = $$find(OBJECTS_DIR, "(/|^)\.[^/]+/?$")
    14 !isEmpty(RET):{
    15     error("Symbian does not support directories starting with a dot. Please set OBJECTS_DIR to a different value in your profile. OBJECTS_DIR: $$OBJECTS_DIR")
    16 }
  • trunk/mkspecs/features/symbian/platform_paths.prf

    r769 r846  
    4646#         INCLUDEPATH += $$OS_LAYER_LIBUTILITY_SYSTEMINCLUDE
    4747#
    48 #
    49 #       
     48#     These paths are primarily meant to be used as is in bld.inf and .mmp
     49#     files, so they do not contain epocroot when using official symbian
     50#     toolchains (symbian-abld or symbian-sbsv2).
     51#     For makefile based mkspecs, epocroot is prepended to all paths for
     52#     convenience.
     53#
     54#     To use paths defined here in other contexts that require epocroot to be
     55#     prepended always, such as exists checks, please use prependEpocroot
     56#     replacement function:
     57#
     58#         exists($$prependEpocroot($$MW_LAYER_PUBLIC_EXPORT_PATH(foobar.h)))
    5059#
    5160# ==============================================================================
    5261
    53 exists($${EPOCROOT}epoc32/include/platform_paths.prf) {
    54    
     62symbian-abld|symbian-sbsv2 {
     63    epocroot_prefix = /
     64} else {
     65    epocroot_prefix = $${EPOCROOT}
     66}
     67
     68symbian-abld|symbian-sbsv2:exists($${EPOCROOT}epoc32/include/platform_paths.prf) {
     69
     70    # Symbian does not provide correct profiles for non-mmp based systems, so
     71    # we only should get in here with abld and sbsv2.
     72
    5573    # Load platform specific paths
    5674    load($${EPOCROOT}epoc32/include/platform_paths.prf)
     
    6785
    6886        defineReplace(APP_LAYER_SDK_EXPORT_PATH) {
    69              return (/epoc32/include/app/$$1)
     87             return ($${epocroot_prefix}epoc32/include/app/$$1)
    7088        }
    7189        defineReplace(APP_LAYER_PUBLIC_EXPORT_PATH) {
    72              return (/epoc32/include/app/$$1)
     90             return ($${epocroot_prefix}epoc32/include/app/$$1)
    7391        }
    7492
     
    7896
    7997        defineReplace(APP_LAYER_DOMAIN_EXPORT_PATH) {
    80              return (/epoc32/include/platform/app/$$1)
     98             return ($${epocroot_prefix}epoc32/include/platform/app/$$1)
    8199        }
    82100        defineReplace(APP_LAYER_PLATFORM_EXPORT_PATH) {
    83              return (/epoc32/include/platform/app/$$1)
     101             return ($${epocroot_prefix}epoc32/include/platform/app/$$1)
    84102        }
    85103
     
    89107
    90108        defineReplace(MW_LAYER_SDK_EXPORT_PATH) {
    91              return (/epoc32/include/mw/$$1)
     109             return ($${epocroot_prefix}epoc32/include/mw/$$1)
    92110        }
    93111        defineReplace(MW_LAYER_PUBLIC_EXPORT_PATH) {
    94              return (/epoc32/include/mw/$$1)
     112             return ($${epocroot_prefix}epoc32/include/mw/$$1)
    95113        }
    96114
     
    100118
    101119        defineReplace(MW_LAYER_DOMAIN_EXPORT_PATH) {
    102              return (/epoc32/include/platform/mw/$$1)
     120             return ($${epocroot_prefix}epoc32/include/platform/mw/$$1)
    103121        }
    104122        defineReplace(MW_LAYER_PLATFORM_EXPORT_PATH) {
    105              return (/epoc32/include/platform/mw/$$1)
     123             return ($${epocroot_prefix}epoc32/include/platform/mw/$$1)
    106124        }
    107125
     
    111129
    112130        defineReplace(OSEXT_LAYER_SDK_EXPORT_PATH) {
    113              return (/epoc32/include/$$1)
     131             return ($${epocroot_prefix}epoc32/include/$$1)
    114132        }
    115133        # WARNING: If the following path changes see the exists() function around line 219
    116134        defineReplace(OS_LAYER_PUBLIC_EXPORT_PATH) {
    117              return (/epoc32/include/$$1)
     135             return ($${epocroot_prefix}epoc32/include/$$1)
    118136        }
    119137
     
    123141
    124142        defineReplace(OSEXT_LAYER_DOMAIN_EXPORT_PATH) {
    125              return (/epoc32/include/platform/$$1)
     143             return ($${epocroot_prefix}epoc32/include/platform/$$1)
    126144        }
    127145        defineReplace(OS_LAYER_PLATFORM_EXPORT_PATH) {
    128              return (/epoc32/include/platform/$$1)
     146             return ($${epocroot_prefix}epoc32/include/platform/$$1)
    129147        }
    130148
     
    153171
    154172        APP_LAYER_SYSTEMINCLUDE = \
    155          /epoc32/include \
    156          /epoc32/include/mw \
    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
     173         $${epocroot_prefix}epoc32/include \
     174         $${epocroot_prefix}epoc32/include/mw \
     175         $${epocroot_prefix}epoc32/include/platform/mw \
     176         $${epocroot_prefix}epoc32/include/platform \
     177         $${epocroot_prefix}epoc32/include/app \
     178         $${epocroot_prefix}epoc32/include/platform/app \
     179         $${epocroot_prefix}epoc32/include/platform/loc \
     180         $${epocroot_prefix}epoc32/include/platform/mw/loc \
     181         $${epocroot_prefix}epoc32/include/platform/app/loc \
     182         $${epocroot_prefix}epoc32/include/platform/loc/sc \
     183         $${epocroot_prefix}epoc32/include/platform/mw/loc/sc \
     184         $${epocroot_prefix}epoc32/include/platform/app/loc/sc
    167185
    168186        # This define statements defines the include paths, which are intended to be
     
    172190
    173191        MW_LAYER_SYSTEMINCLUDE = \
    174          /epoc32/include \
    175          /epoc32/include/mw \
    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
     192         $${epocroot_prefix}epoc32/include \
     193         $${epocroot_prefix}epoc32/include/mw \
     194         $${epocroot_prefix}epoc32/include/platform/mw \
     195         $${epocroot_prefix}epoc32/include/platform \
     196         $${epocroot_prefix}epoc32/include/platform/loc \
     197         $${epocroot_prefix}epoc32/include/platform/mw/loc \
     198         $${epocroot_prefix}epoc32/include/platform/loc/sc \
     199         $${epocroot_prefix}epoc32/include/platform/mw/loc/sc
    182200
    183201        # This define statements defines the include paths, which are intended to be
     
    187205
    188206        OS_LAYER_SYSTEMINCLUDE = \
    189          /epoc32/include \
    190          /epoc32/include/platform \
    191          /epoc32/include/platform/loc \
    192          /epoc32/include/platform/loc/sc
     207         $${epocroot_prefix}epoc32/include \
     208         $${epocroot_prefix}epoc32/include/platform \
     209         $${epocroot_prefix}epoc32/include/platform/loc \
     210         $${epocroot_prefix}epoc32/include/platform/loc/sc
    193211
    194212        # This define statements defines the include paths, which are intended to be
     
    199217
    200218        OS_LAYER_KERNEL_SYSTEMINCLUDE = \
    201          /epoc32/include/platform
     219         $${epocroot_prefix}epoc32/include/platform
    202220
    203221
     
    238256
    239257        defineReplace(APP_LAYER_SDK_EXPORT_PATH) {
    240              return (/epoc32/include/applications/$$1)
     258             return ($${epocroot_prefix}epoc32/include/applications/$$1)
    241259        }
    242260        defineReplace(APP_LAYER_PUBLIC_EXPORT_PATH) {
    243              return (/epoc32/include/applications/$$1)
     261             return ($${epocroot_prefix}epoc32/include/applications/$$1)
    244262        }
    245263
     
    249267
    250268        defineReplace(APP_LAYER_DOMAIN_EXPORT_PATH) {
    251              return (/epoc32/include/domain/applications/$$1)
     269             return ($${epocroot_prefix}epoc32/include/domain/applications/$$1)
    252270        }
    253271        defineReplace(APP_LAYER_PLATFORM_EXPORT_PATH) {
    254              return (/epoc32/include/domain/applications/$$1)
     272             return ($${epocroot_prefix}epoc32/include/domain/applications/$$1)
    255273        }
    256274
     
    260278
    261279        defineReplace(MW_LAYER_SDK_EXPORT_PATH) {
    262              return (/epoc32/include/middleware/$$1)
     280             return ($${epocroot_prefix}epoc32/include/middleware/$$1)
    263281        }
    264282        defineReplace(MW_LAYER_PUBLIC_EXPORT_PATH) {
    265              return (/epoc32/include/middleware/$$1)
     283             return ($${epocroot_prefix}epoc32/include/middleware/$$1)
    266284        }
    267285
     
    271289
    272290        defineReplace(MW_LAYER_DOMAIN_EXPORT_PATH) {
    273              return (/epoc32/include/domain/middleware/$$1)
     291             return ($${epocroot_prefix}epoc32/include/domain/middleware/$$1)
    274292        }
    275293        defineReplace(MW_LAYER_PLATFORM_EXPORT_PATH) {
    276              return (/epoc32/include/domain/middleware/$$1)
     294             return ($${epocroot_prefix}epoc32/include/domain/middleware/$$1)
    277295        }
    278296
     
    282300
    283301        defineReplace(OSEXT_LAYER_SDK_EXPORT_PATH) {
    284              return (/epoc32/include/osextensions/$$1)
     302             return ($${epocroot_prefix}epoc32/include/osextensions/$$1)
    285303        }
    286304        # WARNING: If the following path changes see the exists() function around line 430
    287305        defineReplace(OS_LAYER_PUBLIC_EXPORT_PATH) {
    288              return (/epoc32/include/osextensions/$$1)
     306             return ($${epocroot_prefix}epoc32/include/osextensions/$$1)
    289307        }
    290308
     
    294312
    295313        defineReplace(OSEXT_LAYER_DOMAIN_EXPORT_PATH) {
    296              return (/epoc32/include/domain/osextensions/$$1)
     314             return ($${epocroot_prefix}epoc32/include/domain/osextensions/$$1)
    297315        }
    298316        defineReplace(OS_LAYER_PLATFORM_EXPORT_PATH) {
    299              return (/epoc32/include/domain/osextensions/$$1)
     317             return ($${epocroot_prefix}epoc32/include/domain/osextensions/$$1)
    300318        }
    301319
     
    324342
    325343        APP_LAYER_SYSTEMINCLUDE = \
    326          /epoc32/include \
    327          /epoc32/include/oem \
    328          /epoc32/include/middleware \
    329          /epoc32/include/domain/middleware \
    330          /epoc32/include/osextensions \
    331          /epoc32/include/domain/osextensions \
    332          /epoc32/include/applications \
    333          /epoc32/include/domain/applications \
    334          /epoc32/include/domain/osextensions/loc \
    335          /epoc32/include/domain/middleware/loc \
    336          /epoc32/include/domain/applications/loc \
    337          /epoc32/include/domain/osextensions/loc/sc \
    338          /epoc32/include/domain/middleware/loc/sc \
    339          /epoc32/include/domain/applications/loc/sc
     344         $${epocroot_prefix}epoc32/include \
     345         $${epocroot_prefix}epoc32/include/oem \
     346         $${epocroot_prefix}epoc32/include/middleware \
     347         $${epocroot_prefix}epoc32/include/domain/middleware \
     348         $${epocroot_prefix}epoc32/include/osextensions \
     349         $${epocroot_prefix}epoc32/include/domain/osextensions \
     350         $${epocroot_prefix}epoc32/include/applications \
     351         $${epocroot_prefix}epoc32/include/domain/applications \
     352         $${epocroot_prefix}epoc32/include/domain/osextensions/loc \
     353         $${epocroot_prefix}epoc32/include/domain/middleware/loc \
     354         $${epocroot_prefix}epoc32/include/domain/applications/loc \
     355         $${epocroot_prefix}epoc32/include/domain/osextensions/loc/sc \
     356         $${epocroot_prefix}epoc32/include/domain/middleware/loc/sc \
     357         $${epocroot_prefix}epoc32/include/domain/applications/loc/sc
    340358
    341359        # This define statements defines the include paths, which are intended to be
     
    345363
    346364        MW_LAYER_SYSTEMINCLUDE = \
    347          /epoc32/include \
    348          /epoc32/include/oem \
    349          /epoc32/include/middleware \
    350          /epoc32/include/domain/middleware \
    351          /epoc32/include/osextensions \
    352          /epoc32/include/domain/osextensions \
    353          /epoc32/include/domain/osextensions/loc \
    354          /epoc32/include/domain/middleware/loc \
    355          /epoc32/include/domain/osextensions/loc/sc \
    356          /epoc32/include/domain/middleware/loc/sc
     365         $${epocroot_prefix}epoc32/include \
     366         $${epocroot_prefix}epoc32/include/oem \
     367         $${epocroot_prefix}epoc32/include/middleware \
     368         $${epocroot_prefix}epoc32/include/domain/middleware \
     369         $${epocroot_prefix}epoc32/include/osextensions \
     370         $${epocroot_prefix}epoc32/include/domain/osextensions \
     371         $${epocroot_prefix}epoc32/include/domain/osextensions/loc \
     372         $${epocroot_prefix}epoc32/include/domain/middleware/loc \
     373         $${epocroot_prefix}epoc32/include/domain/osextensions/loc/sc \
     374         $${epocroot_prefix}epoc32/include/domain/middleware/loc/sc
    357375
    358376        # This define statements defines the include paths, which are intended to be
     
    362380
    363381        OS_LAYER_SYSTEMINCLUDE = \
    364          /epoc32/include \
    365          /epoc32/include/oem \
    366          /epoc32/include/osextensions \
    367          /epoc32/include/domain/osextensions \
    368          /epoc32/include/domain/osextensions/loc \
    369          /epoc32/include/domain/osextensions/loc/sc
     382         $${epocroot_prefix}epoc32/include \
     383         $${epocroot_prefix}epoc32/include/oem \
     384         $${epocroot_prefix}epoc32/include/osextensions \
     385         $${epocroot_prefix}epoc32/include/domain/osextensions \
     386         $${epocroot_prefix}epoc32/include/domain/osextensions/loc \
     387         $${epocroot_prefix}epoc32/include/domain/osextensions/loc/sc
    370388
    371389        # This define statements defines the include paths, which are intended to be
     
    376394
    377395        OS_LAYER_KERNEL_SYSTEMINCLUDE = \
    378          /epoc32/include/oem \
    379          /epoc32/include/osextensions \
    380          /epoc32/include/domain/osextensions
     396         $${epocroot_prefix}epoc32/include/oem \
     397         $${epocroot_prefix}epoc32/include/osextensions \
     398         $${epocroot_prefix}epoc32/include/domain/osextensions
    381399
    382400
     
    388406        OS_LAYER_LIBC_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis) \
    389407                                      $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/sys) \
    390                                       /epoc32/include/stdapis \
    391                                       /epoc32/include/stdapis/sys
     408                                      $${epocroot_prefix}epoc32/include/stdapis \
     409                                      $${epocroot_prefix}epoc32/include/stdapis/sys
    392410
    393411        OS_LAYER_GLIB_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0) \
    394412                                      $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0/glib) \
    395413                                      $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0/gObject) \
    396                                       /epoc32/include/stdapis/glib-2.0 \
    397                                       /epoc32/include/stdapis/glib-2.0/glib \
    398                                       /epoc32/include/stdapis/glib-2.0/gObject
     414                                      $${epocroot_prefix}epoc32/include/stdapis/glib-2.0 \
     415                                      $${epocroot_prefix}epoc32/include/stdapis/glib-2.0/glib \
     416                                      $${epocroot_prefix}epoc32/include/stdapis/glib-2.0/gObject
    399417
    400418        OS_LAYER_SSL_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/openssl) \
    401                                      /epoc32/include/stdapis/openssl
     419                                     $${epocroot_prefix}epoc32/include/stdapis/openssl
    402420
    403421        # stlportv5 is preferred over stlport as it has the throwing version of operator new
    404422        OS_LAYER_STDCPP_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlportv5) \
    405                                         /epoc32/include/stdapis/stlportv5
     423                                        $${epocroot_prefix}epoc32/include/stdapis/stlportv5
    406424        exists($${EPOCROOT}epoc32/include/osextensions/stdapis/stlport) \
    407425        |exists($${EPOCROOT}epoc32/include/stdapis/stlport) {
     
    409427            :!exists($${EPOCROOT}epoc32/include/stdapis/stlportv5) {
    410428                OS_LAYER_STDCPP_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlport) \
    411                                                 /epoc32/include/stdapis/stlport
     429                                                $${epocroot_prefix}epoc32/include/stdapis/stlport
    412430            }
    413431        }
    414432       
    415433        OS_LAYER_BOOST_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/boost) \
    416                                        /epoc32/include/stdapis/boost
     434                                       $${epocroot_prefix}epoc32/include/stdapis/boost
    417435
    418436        OS_LAYER_DBUS_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/dbus-1.0) \
    419437                                      $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/dbus-1.0/dbus) \
    420                                       /epoc32/include/stdapis/dbus-1.0 \
    421                                       /epoc32/include/stdapis/dbus-1.0/dbus
     438                                      $${epocroot_prefix}epoc32/include/stdapis/dbus-1.0 \
     439                                      $${epocroot_prefix}epoc32/include/stdapis/dbus-1.0/dbus
    422440
    423441        OS_LAYER_LIBUTILITY_SYSTEMINCLUDE = $$OS_LAYER_PLATFORM_EXPORT_PATH(stdapis/utility) \
    424                                             /epoc32/include/stdapis/utility
     442                                            $${epocroot_prefix}epoc32/include/stdapis/utility
    425443
    426444    }
     
    434452
    435453    defineReplace(CORE_APP_LAYER_IBY_EXPORT_PATH) {
    436         return(/epoc32/rom/include/core/app/$$1)
     454        return($${epocroot_prefix}epoc32/rom/include/core/app/$$1)
    437455    }
    438456    defineReplace(CORE_MW_LAYER_IBY_EXPORT_PATH) {
    439         return(/epoc32/rom/include/core/mw/$$1)
     457        return($${epocroot_prefix}epoc32/rom/include/core/mw/$$1)
    440458    }
    441459
    442460    defineReplace(LANGUAGE_APP_LAYER_IBY_EXPORT_PATH) {
    443         return(/epoc32/rom/include/language/app/$$1)
     461        return($${epocroot_prefix}epoc32/rom/include/language/app/$$1)
    444462    }
    445463    defineReplace(LANGUAGE_MW_LAYER_IBY_EXPORT_PATH) {
    446         return(/epoc32/rom/include/language/mw/$$1)
     464        return($${epocroot_prefix}epoc32/rom/include/language/mw/$$1)
    447465    }
    448466
    449467    defineReplace(CUSTOMER_APP_LAYER_IBY_EXPORT_PATH) {
    450         return(/epoc32/rom/include/customer/app/$$1)
     468        return($${epocroot_prefix}epoc32/rom/include/customer/app/$$1)
    451469    }
    452470    defineReplace(CUSTOMER_MW_LAYER_IBY_EXPORT_PATH) {
    453         return(/epoc32/rom/include/customer/mw/$$1)
     471        return($${epocroot_prefix}epoc32/rom/include/customer/mw/$$1)
    454472    }
    455473
    456474    defineReplace(CUSTOMER_VARIANT_APP_LAYER_IBY_EXPORT_PATH) {
    457         return(/epoc32/rom/include/customervariant/app/$$1)
     475        return($${epocroot_prefix}epoc32/rom/include/customervariant/app/$$1)
    458476    }
    459477    defineReplace(CUSTOMER_VARIANT_MW_LAYER_IBY_EXPORT_PATH) {
    460         return(/epoc32/rom/include/customervariant/mw/$$1)
     478        return($${epocroot_prefix}epoc32/rom/include/customervariant/mw/$$1)
    461479    }
    462480
     
    467485    STLLIB_USAGE_DEFINES = _WCHAR_T_DECLARED
    468486
     487    # Smart prepend of EPOCROOT to a string
     488    defineReplace(prependEpocroot) {
     489        contains(1, ^$${EPOCROOT}) {
     490            return($$1)
     491        } else {
     492            return($${EPOCROOT}$$replace(1,"^/",))
     493        }
     494    }
     495
    469496}
    470 
    471 
    472    
  • trunk/mkspecs/features/symbian/qt.prf

    r769 r846  
    2626#       while self-signed version typically has temporary UID3 of 0xE001E61C.
    2727contains(CONFIG, qt):!contains(TARGET.UID3, 0x2001E61C):!contains(TARGET.UID3, 0xE001E61C):isEmpty(QT_LIBINFIX) {
     28    qt_pkg_name = Qt
    2829    pkg_depends_qt += \
    2930        "; Default dependency to Qt libraries" \
    30         "(0x2001E61C), $${QT_MAJOR_VERSION}, $${QT_MINOR_VERSION}, $${QT_PATCH_VERSION},  {\"Qt\"}"
     31        "(0x2001E61C), $${QT_MAJOR_VERSION}, $${QT_MINOR_VERSION}, $${QT_PATCH_VERSION}, {$$addLanguageDependentPkgItem(qt_pkg_name)}"
    3132
    3233    # Projects linking to webkit need dependency to webkit
     
    3940        }
    4041
     42        webkit_pkg_name = QtWebKit
    4143        pkg_depends_webkit += \
    4244            "; Dependency to Qt Webkit" \
    43             "(0x200267C2), $${QT_WEBKIT_MAJOR_VERSION}, $${QT_WEBKIT_MINOR_VERSION}, $${QT_WEBKIT_PATCH_VERSION},  {\"QtWebKit\"}"
     45            "(0x200267C2), $${QT_WEBKIT_MAJOR_VERSION}, $${QT_WEBKIT_MINOR_VERSION}, $${QT_WEBKIT_PATCH_VERSION}, {$$addLanguageDependentPkgItem(webkit_pkg_name)}"
    4446    } else {
    4547        default_deployment.pkg_prerules -= pkg_depends_webkit
     
    5153isEmpty(TARGET.EPOCSTACKSIZE):TARGET.EPOCSTACKSIZE = 0x14000
    5254isEmpty(TARGET.EPOCHEAPSIZE):TARGET.EPOCHEAPSIZE = 0x020000 0x800000
     55
     56# Workaround for the fact that Gnupoc and Symbian chose different approaches to
     57# the letter casing of headers.
     58contains(CONFIG, is_using_gnupoc) {
     59    INCLUDEPATH += $${PWD}/../../common/symbian/header-wrappers
     60}
  • trunk/mkspecs/features/symbian/stl.prf

    r769 r846  
    1313# Remove mkspecs/common/symbian/stl-off from beginning of includepath
    1414# in order to use new and delete operators from STL
    15 INCLUDEPATH -= $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian/stl-off
     15INCLUDEPATH -= $$[QT_INSTALL_DATA]/mkspecs/common/symbian/stl-off
    1616
    1717# libstdcppv5 is preferred over libstdcpp as it has/uses the throwing version of operator new
    18 STL_LIB = -llibstdcppv5.dll
    19 
    2018# STDCPP turns on standard C++ new behaviour (ie. throwing new)
    21 STL_MMP_RULE = "STDCPP"
     19use_libstdcppv5 = true
    2220
    2321# Fall back to old implementation if that is the only one that is found
    24 exists($${EPOCROOT}epoc32/release/armv5/urel/libstdcpp.dll)|exists($${EPOCROOT}epoc32/release/winscw/udeb/libstdcpp.dll) {
    25     !exists($${EPOCROOT}epoc32/release/armv5/urel/libstdcppv5.dll):!exists($${EPOCROOT}epoc32/release/winscw/udeb/libstdcppv5.dll) {
    26         STL_LIB = -llibstdcpp.dll
    27         STL_MMP_RULE =
     22exists($${EPOCROOT}epoc32/release/armv5/lib/libstdcpp.dso)|exists($${EPOCROOT}epoc32/release/winscw/udeb/libstdcpp.dll) {
     23    !exists($${EPOCROOT}epoc32/release/armv5/lib/libstdcppv5.dso):!exists($${EPOCROOT}epoc32/release/winscw/udeb/libstdcppv5.dll) {
     24        use_libstdcppv5 = false
    2825    }
    2926}
    3027
    31 LIBS *= $$STL_LIB
    32 MMP_RULES *= $$STL_MMP_RULE
     28equals(use_libstdcppv5, true) {
     29    LIBS *= -llibstdcppv5.dll
     30    symbian-abld|symbian-sbsv2 {
     31        MMP_RULES *= "STDCPP"
     32    } else {
     33        DEFINES *= __SYMBIAN_STDCPP_SUPPORT__
     34        LIBS *= -lstdnew.dll
     35    }
     36} else {
     37    LIBS *= -llibstdcpp.dll
     38}
     39
     40# use the runtime support for nested exceptions, if a library is available
     41exists($${EPOCROOT}epoc32/release/armv5/urel/usrt_nx_*.lib) {
     42    CONFIG += nested_exceptions
     43}
Note: See TracChangeset for help on using the changeset viewer.