diff options
Diffstat (limited to 'mkspecs')
-rw-r--r-- | mkspecs/common/symbian/header-wrappers/AknBitmapAnimation.h | 1 | ||||
-rw-r--r-- | mkspecs/common/symbian/header-wrappers/AknFontAccess.h | 1 | ||||
-rw-r--r-- | mkspecs/common/symbian/header-wrappers/AknInputLanguageInfo.h | 1 | ||||
-rw-r--r-- | mkspecs/common/symbian/header-wrappers/ApAccessPointItem.h | 1 | ||||
-rw-r--r-- | mkspecs/common/symbian/header-wrappers/ApDataHandler.h | 1 | ||||
-rw-r--r-- | mkspecs/common/symbian/header-wrappers/ApUtils.h | 1 | ||||
-rw-r--r-- | mkspecs/common/symbian/symbian-makefile.conf | 7 | ||||
-rw-r--r-- | mkspecs/common/symbian/symbian-mmp.conf | 19 | ||||
-rw-r--r-- | mkspecs/common/symbian/symbian.conf | 32 | ||||
-rw-r--r-- | mkspecs/features/symbian/platform_paths.prf | 7 | ||||
-rw-r--r-- | mkspecs/features/symbian/stl.prf | 20 | ||||
-rw-r--r-- | mkspecs/features/symbian/symbian_building.prf | 2 | ||||
-rw-r--r-- | mkspecs/symbian/linux-armcc/qmake.conf | 13 |
13 files changed, 75 insertions, 31 deletions
diff --git a/mkspecs/common/symbian/header-wrappers/AknBitmapAnimation.h b/mkspecs/common/symbian/header-wrappers/AknBitmapAnimation.h new file mode 100644 index 0000000..d53605e --- /dev/null +++ b/mkspecs/common/symbian/header-wrappers/AknBitmapAnimation.h @@ -0,0 +1 @@ +#include <aknbitmapanimation.h> diff --git a/mkspecs/common/symbian/header-wrappers/AknFontAccess.h b/mkspecs/common/symbian/header-wrappers/AknFontAccess.h new file mode 100644 index 0000000..e33baaf --- /dev/null +++ b/mkspecs/common/symbian/header-wrappers/AknFontAccess.h @@ -0,0 +1 @@ +#include <aknfontaccess.h> diff --git a/mkspecs/common/symbian/header-wrappers/AknInputLanguageInfo.h b/mkspecs/common/symbian/header-wrappers/AknInputLanguageInfo.h new file mode 100644 index 0000000..5f993d7 --- /dev/null +++ b/mkspecs/common/symbian/header-wrappers/AknInputLanguageInfo.h @@ -0,0 +1 @@ +#include <akninputlanguageinfo.h> diff --git a/mkspecs/common/symbian/header-wrappers/ApAccessPointItem.h b/mkspecs/common/symbian/header-wrappers/ApAccessPointItem.h new file mode 100644 index 0000000..75b6c69 --- /dev/null +++ b/mkspecs/common/symbian/header-wrappers/ApAccessPointItem.h @@ -0,0 +1 @@ +#include <apaccesspointitem.h> diff --git a/mkspecs/common/symbian/header-wrappers/ApDataHandler.h b/mkspecs/common/symbian/header-wrappers/ApDataHandler.h new file mode 100644 index 0000000..b7b972d --- /dev/null +++ b/mkspecs/common/symbian/header-wrappers/ApDataHandler.h @@ -0,0 +1 @@ +#include <apdatahandler.h> diff --git a/mkspecs/common/symbian/header-wrappers/ApUtils.h b/mkspecs/common/symbian/header-wrappers/ApUtils.h new file mode 100644 index 0000000..09cedce --- /dev/null +++ b/mkspecs/common/symbian/header-wrappers/ApUtils.h @@ -0,0 +1 @@ +#include <aputils.h> diff --git a/mkspecs/common/symbian/symbian-makefile.conf b/mkspecs/common/symbian/symbian-makefile.conf index b1ca367..364e91b 100644 --- a/mkspecs/common/symbian/symbian-makefile.conf +++ b/mkspecs/common/symbian/symbian-makefile.conf @@ -29,7 +29,12 @@ QMAKE_PREFIX_STATICLIB = QMAKE_EXTENSION_STATICLIB = lib QMAKE_SYMBIAN_SHLIB = 1 -DEFINES *= __PRODUCT_INCLUDE__=\\<$${EPOCROOT}epoc32/include/variant/symbian_os.hrh\\> \ +is_using_gnupoc { + DEFINES *= __PRODUCT_INCLUDE__=\\<$${EPOCROOT}epoc32/include/variant/symbian_os.hrh\\> +} else { + DEFINES *= __PRODUCT_INCLUDE__=\\<$${EPOCROOT}epoc32/include/variant/Symbian_OS.hrh\\> +} +DEFINES *= \ __SYMBIAN32__ \ __MARM_INTERWORK__ \ _UNICODE \ diff --git a/mkspecs/common/symbian/symbian-mmp.conf b/mkspecs/common/symbian/symbian-mmp.conf index 5a7b2d2..4230ad7 100644 --- a/mkspecs/common/symbian/symbian-mmp.conf +++ b/mkspecs/common/symbian/symbian-mmp.conf @@ -38,24 +38,7 @@ INCLUDEPATH = \ # RVCT seems to do this automatically, but WINSCW compiler does not, so add it here. MMP_RULES += "USERINCLUDE ." -exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.2.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.2.sis) { - S60_VERSION = 5.2 symbian3 -} else { - exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.1.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.1.sis) { - S60_VERSION = 5.1 symbian2 - } else { - exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.0.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.0.sis) { - S60_VERSION = 5.0 - } else { - exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v3.2.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v3.2.sis) { - S60_VERSION = 3.2 - } else { - S60_VERSION = 3.1 - MMP_RULES -= PAGED BYTEPAIRCOMPRESSTARGET - } - } - } -} +contains(S60_VERSION, 3.1):MMP_RULES -= PAGED BYTEPAIRCOMPRESSTARGET QMAKE_CXXFLAGS_FAST_VFP.ARMCC = --fpmode fast # [TODO] QMAKE_CXXFLAGS_FAST_VFP.GCCE = diff --git a/mkspecs/common/symbian/symbian.conf b/mkspecs/common/symbian/symbian.conf index 7ec5c6c..6d96b01 100644 --- a/mkspecs/common/symbian/symbian.conf +++ b/mkspecs/common/symbian/symbian.conf @@ -119,6 +119,38 @@ QT_IMPORTS_BASE_DIR = /resource/qt/imports load(qt_config) load(symbian/platform_paths) +# The Symbian^3 PDK does not necessarily contain the required sis files. +# However, libstdcppv5 first appeared in Symbian^3 (S60 5.2), so check for that too. +exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.2.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.2.sis)|exists($${EPOCROOT}epoc32/release/armv5/lib/libstdcppv5.dso) { + S60_VERSION = 5.2 +} else { + exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.1.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.1.sis) { + S60_VERSION = 5.1 + } else { + exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.0.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.0.sis) { + S60_VERSION = 5.0 + } else { + exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v3.2.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v3.2.sis) { + S60_VERSION = 3.2 + } else { + S60_VERSION = 3.1 + } + } + } +} + +contains(S60_VERSION, "3\\.1") { + SYMBIAN_VERSION = 9.2 +} else:contains(S60_VERSION, "3\\.2") { + SYMBIAN_VERSION = 9.3 +} else:contains(S60_VERSION, "5\\.0") { + SYMBIAN_VERSION = 9.4 +} else:contains(S60_VERSION, "5\\.1") { + SYMBIAN_VERSION = Symbian2 +} else:contains(S60_VERSION, "5\\.2") { + SYMBIAN_VERSION = Symbian3 +} + # pkg_depends_webkit, pkg_depends_core, and pkg_platform_dependencies can be removed by developer # if multiple languages need to be supported by pkg file. In that case the developer should declare # multiple language compatible dependency statements him/herself. diff --git a/mkspecs/features/symbian/platform_paths.prf b/mkspecs/features/symbian/platform_paths.prf index 5c190c8..f19898f 100644 --- a/mkspecs/features/symbian/platform_paths.prf +++ b/mkspecs/features/symbian/platform_paths.prf @@ -65,8 +65,11 @@ symbian-abld|symbian-sbsv2 { epocroot_prefix = $${EPOCROOT} } -exists($${EPOCROOT}epoc32/include/platform_paths.prf) { - +symbian-abld|symbian-sbsv2:exists($${EPOCROOT}epoc32/include/platform_paths.prf) { + + # Symbian does not provide correct profiles for non-mmp based systems, so + # we only should get in here with abld and sbsv2. + # Load platform specific paths load($${EPOCROOT}epoc32/include/platform_paths.prf) diff --git a/mkspecs/features/symbian/stl.prf b/mkspecs/features/symbian/stl.prf index 3091fce..2a3bce4 100644 --- a/mkspecs/features/symbian/stl.prf +++ b/mkspecs/features/symbian/stl.prf @@ -15,18 +15,24 @@ INCLUDEPATH += $$OS_LAYER_STDCPP_SYSTEMINCLUDE 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" +use_libstdcppv5 = true # Fall back to old implementation if that is the only one that is found exists($${EPOCROOT}epoc32/release/armv5/lib/libstdcpp.dso)|exists($${EPOCROOT}epoc32/release/winscw/udeb/libstdcpp.dll) { !exists($${EPOCROOT}epoc32/release/armv5/lib/libstdcppv5.dso):!exists($${EPOCROOT}epoc32/release/winscw/udeb/libstdcppv5.dll) { - STL_LIB = -llibstdcpp.dll - STL_MMP_RULE = + use_libstdcppv5 = false } } -LIBS *= $$STL_LIB -MMP_RULES *= $$STL_MMP_RULE +equals(use_libstdcppv5, true) { + LIBS *= -llibstdcppv5.dll + symbian-abld|symbian-sbsv2 { + MMP_RULES *= "STDCPP" + } else { + DEFINES *= __SYMBIAN_STDCPP_SUPPORT__ + LIBS *= -lstdnew.dll + } +} else { + LIBS *= -llibstdcpp.dll +} diff --git a/mkspecs/features/symbian/symbian_building.prf b/mkspecs/features/symbian/symbian_building.prf index c119c90..374fe21 100644 --- a/mkspecs/features/symbian/symbian_building.prf +++ b/mkspecs/features/symbian/symbian_building.prf @@ -186,7 +186,7 @@ contains(TEMPLATE, app):!contains(QMAKE_LINK, "^@:.*") { $$elf2e32_LIBPATH \ $$capability \ $$QMAKE_ELF2E32_FLAGS \ - && ln "$${symbianDestdir}/$${baseTarget}.exe" "$${symbianDestdir}/$${baseTarget}" \ + && $$QMAKE_COPY "$${symbianDestdir}/$${baseTarget}.exe" "$${symbianDestdir}/$${baseTarget}" \ $$QMAKE_POST_LINK silent:QMAKE_POST_LINK = @echo postlinking $@ && $$QMAKE_POST_LINK QMAKE_DISTCLEAN += $${symbianDestdir}/$${baseTarget}.sym diff --git a/mkspecs/symbian/linux-armcc/qmake.conf b/mkspecs/symbian/linux-armcc/qmake.conf index f8072e3..f058421 100644 --- a/mkspecs/symbian/linux-armcc/qmake.conf +++ b/mkspecs/symbian/linux-armcc/qmake.conf @@ -31,7 +31,7 @@ QMAKE_QtWebKit_CXXFLAGS = --arm # Move RW-section base address to start from 0xE00000 instead of the toolchain default 0x400000. QMAKE_QtWebKit_LFLAGS = --rw-base 0xE00000 -QMAKE_CFLAGS += --dllimport_runtime --preinclude rvct2_2.h --diag_suppress 186,611,654,1300 --thumb --fpu softvfp --cpu 5T --enum_is_int -Ono_known_library --fpmode ieee_no_fenv --no_vfe --apcs /inter +QMAKE_CFLAGS += --dllimport_runtime --diag_suppress 186,611,654,1300 --thumb --fpu softvfp --cpu 5T --enum_is_int -Ono_known_library --fpmode ieee_no_fenv --no_vfe --apcs /inter QMAKE_CXXFLAGS += $$QMAKE_CFLAGS QMAKE_LFLAGS += --symver_soname --diag_suppress 6331,6780 --bpabi --reloc --datacompressor=off --split --dll --no_scanlib QMAKE_LFLAGS_APP += --entry _E32Startup @@ -47,7 +47,16 @@ QMAKE_LIBDIR += $${EPOCROOT}epoc32/release/armv5/lib QMAKE_LIBDIR *= $$(RVCT22LIB) INCLUDEPATH = $${EPOCROOT}epoc32/include \ - $${EPOCROOT}epoc32/include/rvct2_2 \ $${EPOCROOT}epoc32/include/variant \ $${EPOCROOT}epoc32/include/stdapis \ $$INCLUDEPATH + +exists($${EPOCROOT}epoc32/include/rvct2_2) { + INCLUDEPATH += $${EPOCROOT}epoc32/include/rvct2_2 + QMAKE_CFLAGS += --preinclude rvct2_2.h + QMAKE_CXXFLAGS += --preinclude rvct2_2.h +} else { + INCLUDEPATH += $${EPOCROOT}epoc32/include/rvct + QMAKE_CFLAGS += --preinclude rvct.h + QMAKE_CXXFLAGS += --preinclude rvct.h +} |