util/mkspecs/features/symbian/stl.prf
changeset 7 f7bc934e204c
equal deleted inserted replaced
3:41300fa6a67c 7:f7bc934e204c
       
     1 CONFIG -= stl_off
       
     2 
       
     3 # STL usage in S60 requires the "OPTION CW -wchar_t on" mmp statement to be used.
       
     4 # This statement is added via $$STLLIB_USAGE_CW_FLAGS variable below.
       
     5 # S60 STL documentation instructs to use also "MACRO  _WCHAR_T_DECLARED" statement,
       
     6 # but QtS60 will not compile if that statement is set.
       
     7 
       
     8 QMAKE_CXXFLAGS.CW *= $$STLLIB_USAGE_CW_FLAGS 
       
     9 
       
    10 # Path to stlport headers
       
    11 INCLUDEPATH += $$OS_LAYER_STDCPP_SYSTEMINCLUDE 
       
    12 
       
    13 # Remove mkspecs/common/symbian/stl-off from beginning of includepath 
       
    14 # in order to use new and delete operators from STL
       
    15 INCLUDEPATH -= $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian/stl-off
       
    16 
       
    17 # libstdcppv5 is preferred over libstdcpp as it has/uses the throwing version of operator new
       
    18 STL_LIB = -llibstdcppv5.dll
       
    19 
       
    20 # STDCPP turns on standard C++ new behaviour (ie. throwing new)
       
    21 STL_MMP_RULE = "STDCPP"
       
    22 
       
    23 # 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 =
       
    28     }
       
    29 }
       
    30 
       
    31 LIBS *= $$STL_LIB
       
    32 MMP_RULES *= $$STL_MMP_RULE