--- a/mkspecs/common/symbian/symbian.conf Mon Mar 15 12:43:09 2010 +0200
+++ b/mkspecs/common/symbian/symbian.conf Thu Apr 08 14:19:33 2010 +0300
@@ -26,10 +26,13 @@
QMAKE_CFLAGS_DEBUG =
QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
+
+VERSION_FLAGS.ARMCC = ARMCC_4_0
QMAKE_CXX = g++
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
QMAKE_CXXFLAGS.CW =
-QMAKE_CXXFLAGS.ARMCC = --visibility_inlines_hidden
+QMAKE_CXXFLAGS.ARMCC = --visibility_inlines_hidden
+QMAKE_CXXFLAGS.ARMCC_4_0 = --import_all_vtbl
QMAKE_CXXFLAGS.GCCE = -fvisibility-inlines-hidden
QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
@@ -64,18 +67,30 @@
QMAKE_LINK_OBJECT_MAX =
QMAKE_LINK_OBJECT_SCRIPT=
-QMAKE_LIBS = -llibc -llibm -leuser -llibdl -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc -lavkon -lefsrv -lcharconv -lws32 -lhal -lgdi -lapgrfx
+QMAKE_LIBS = -llibc -llibm -leuser -llibdl
QMAKE_LIBS_CORE = $$QMAKE_LIBS -llibpthread -lefsrv
QMAKE_LIBS_GUI = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lhal -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc -lcentralrepository
QMAKE_LIBS_NETWORK =
QMAKE_LIBS_EGL = -llibEGL
QMAKE_LIBS_OPENGL =
-QMAKE_LIBS_OPENVG = -llibOpenVG -lgraphicsresource -lfbscli -lbitgdi -lgdi
+QMAKE_LIBS_OPENVG = -llibOpenVG -lfbscli -lbitgdi -lgdi
QMAKE_LIBS_COMPAT =
QMAKE_LIBS_QT_ENTRY = -llibcrt0.lib
QMAKE_LIBS_S60 = -lavkon
-!isEmpty(QMAKE_SH) {
+exists($${EPOCROOT}epoc32/include/platform/sgresource/sgimage.h) {
+ QMAKE_LIBS_OPENVG += -lsgresource
+}
+
+contains(QMAKE_HOST.os,Windows) {
+ QMAKE_COPY = copy /y
+ QMAKE_COPY_DIR = xcopy /s /q /y /i
+ QMAKE_MOVE = move
+ QMAKE_DEL_FILE = del
+ QMAKE_MKDIR = mkdir
+ QMAKE_DEL_DIR = rmdir
+ QMAKE_CHK_DIR_EXISTS = if not exist
+} else {
QMAKE_COPY = cp
QMAKE_COPY_DIR = cp -r
QMAKE_MOVE = mv
@@ -83,14 +98,6 @@
QMAKE_MKDIR = mkdir
QMAKE_DEL_DIR = rmdir
QMAKE_CHK_DIR_EXISTS = test -d
-} else {
- QMAKE_COPY = copy /y
- QMAKE_COPY_DIR = xcopy /s /q /y /i
- QMAKE_MOVE = move
- QMAKE_DEL_FILE = del
- QMAKE_MKDIR = mkdir
- QMAKE_DEL_DIR = rmdir
- QMAKE_CHK_DIR_EXISTS = if not exist
}
QMAKE_MOC = /epoc32/tools/qt/moc$$(DOTEXE)
@@ -107,6 +114,7 @@
load(qt_config)
load(platform_paths)
+load(add_mmp_rules)
symbian-abld {
# Versions of abld prior to Symbian^3 have a bug where you cannot remove something from the command line without replacing it
@@ -115,20 +123,29 @@
} else {
MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA = "OPTION_REPLACE ARMCC --export_all_vtbl // don't use --export_all_vtbl"
}
-MMP_RULES += PAGED
+MMP_RULES += PAGED BYTEPAIRCOMPRESSTARGET
MMP_RULES += $$MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA
SYMBIAN_PLATFORMS = WINSCW GCCE ARMV5 ARMV6
-# Legacy support requires some hardcoded stdapis paths.
INCLUDEPATH = \
$$[QT_INSTALL_PREFIX]/mkspecs/common/symbian/stl-off \
$$[QT_INSTALL_PREFIX]/mkspecs/common/symbian \
$${EPOCROOT}epoc32/include \
$$OS_LAYER_LIBC_SYSTEMINCLUDE \
$$INCLUDEPATH
-
+
+# Ensure '.' directory is the first in include path.
+# RVCT seems to do this automatically, but WINSCW compiler does not, so add it here.
+MMP_RULES += "USERINCLUDE ."
+
+# 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.
+
+default_deployment.pkg_prerules += pkg_depends_webkit pkg_depends_qt pkg_platform_dependencies
+
# Supports S60 3.0, 3.1, 3.2 and 5.0 by default
-default_deployment.pkg_prerules = \
+pkg_platform_dependencies = \
"; Default HW/platform dependencies" \
"[0x101F7961],0,0,0,{\"S60ProductID\"}" \
"[0x102032BE],0,0,0,{\"S60ProductID\"}" \
@@ -145,6 +162,31 @@
S60_VERSION = 3.2
} else {
S60_VERSION = 3.1
- MMP_RULES -= PAGED
+ MMP_RULES -= PAGED BYTEPAIRCOMPRESSTARGET
}
}
+
+QMAKE_CXXFLAGS_FAST_VFP.ARMCC = --fpmode fast
+# [TODO] QMAKE_CXXFLAGS_FAST_VFP.GCCE =
+
+symbian {
+ armfpu = $$find(MMP_RULES, "ARMFPU")
+ !isEmpty(armfpu) {
+ vfpv2 = $$find(MMP_RULES, "vfpv2")
+ !isEmpty(vfpv2) {
+ # we will respect fpu setting obtained from configure, but,
+ # if vfpv2 or softvfp+vfpv2 used we want to force RunFast VFP mode
+ QMAKE_CXXFLAGS.ARMCC += $${QMAKE_CXXFLAGS_FAST_VFP.ARMCC}
+ # [TODO] QMAKE_CXXFLAGS.GCCE += $${QMAKE_CXXFLAGS_FAST_VFP.GCCE}
+ }
+ }
+}
+
+# QMAKE_CXXFLAGS.ARMCC doesn't provide support for conditional options, so use MMP_RULES # to enable support for newer armcc compilers.
+# MMP files support combining multiple OPTION statements, so this is not a problem.
+newArmccRule = \
+ "$${LITERAL_HASH}if defined(ARMCC) && !defined(ARMCC_2_2) && !defined(ARMCC_3_1)"\
+ "OPTION ARMCC --import_all_vtbl" \
+ "$${LITERAL_HASH}endif"
+MMP_RULES += newArmccRule
+