diff options
Diffstat (limited to 'mkspecs/features/symbian/stl.prf')
-rw-r--r-- | mkspecs/features/symbian/stl.prf | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/mkspecs/features/symbian/stl.prf b/mkspecs/features/symbian/stl.prf new file mode 100644 index 0000000000..9eb6b867c5 --- /dev/null +++ b/mkspecs/features/symbian/stl.prf @@ -0,0 +1,37 @@ +CONFIG -= stl_off + +# STL usage in S60 requires the following mmp variables to be uses +# OPTION CW -wchar_t on +# MACRO _WCHAR_T_DECLARED + +QMAKE_CXXFLAGS.CW *= $$STLLIB_USAGE_CW_FLAGS +DEFINES *= $$STLLIB_USAGE_DEFINES + +# Legacy support requires some hardcoded stdapis paths. +# Note: Also the new header is used from STL when it is enabled +INCLUDEPATH += $$OS_LAYER_STDCPP_SYSTEMINCLUDE + +# Remove mkspecs/common/symbian/stl-off from beginning of includepath +# in order to use new and delete operators from STL +INCLUDEPATH -= $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian/stl-off + +# libstdcppv5 is preferred over libstdcpp as it has/uses the throwing version of operator new +exists($${EPOCROOT}epoc32/release/armv5/urel/libstdcppv5.dll ) { + LIBS *= -llibstdcppv5.dll + + # STDCPP turns on standard C++ new behaviour in SBSv2 + MMP_RULES += "STDCPP" + + # defining __SYMBIAN_STDCPP_SUPPORT__ turns on standard C++ new behaviour pre SBSv2 + DEFINES += "__SYMBIAN_STDCPP_SUPPORT__" + + # operator new is actually supplied in stdnew.lib for hardware builds + eabiStdNewLibBlock = \ + "$${LITERAL_HASH}ifdef EABI" \ + "LIBRARY stdnew.lib" \ + "$${LITERAL_HASH}endif" + + MMP_RULES += eabiStdNewLibBlock +} else { + LIBS *= -llibstdcpp.dll +} |