diff -r 41300fa6a67c -r f7bc934e204c util/mkspecs/features/symbian/stl.prf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/util/mkspecs/features/symbian/stl.prf Wed Mar 31 11:06:36 2010 +0300 @@ -0,0 +1,32 @@ +CONFIG -= stl_off + +# STL usage in S60 requires the "OPTION CW -wchar_t on" mmp statement to be used. +# This statement is added via $$STLLIB_USAGE_CW_FLAGS variable below. +# S60 STL documentation instructs to use also "MACRO _WCHAR_T_DECLARED" statement, +# but QtS60 will not compile if that statement is set. + +QMAKE_CXXFLAGS.CW *= $$STLLIB_USAGE_CW_FLAGS + +# Path to stlport headers +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 +STL_LIB = -llibstdcppv5.dll + +# STDCPP turns on standard C++ new behaviour (ie. throwing new) +STL_MMP_RULE = "STDCPP" + +# Fall back to old implementation if that is the only one that is found +exists($${EPOCROOT}epoc32/release/armv5/urel/libstdcpp.dll)|exists($${EPOCROOT}epoc32/release/winscw/udeb/libstdcpp.dll) { + !exists($${EPOCROOT}epoc32/release/armv5/urel/libstdcppv5.dll):!exists($${EPOCROOT}epoc32/release/winscw/udeb/libstdcppv5.dll) { + STL_LIB = -llibstdcpp.dll + STL_MMP_RULE = + } +} + +LIBS *= $$STL_LIB +MMP_RULES *= $$STL_MMP_RULE