mkspecs/common/symbian/symbian.conf
changeset 7 f7bc934e204c
parent 3 41300fa6a67c
--- a/mkspecs/common/symbian/symbian.conf	Tue Feb 02 00:43:10 2010 +0200
+++ b/mkspecs/common/symbian/symbian.conf	Wed Mar 31 11:06:36 2010 +0300
@@ -26,10 +26,14 @@
 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
 QMAKE_CXXFLAGS_WARN_OFF	= $$QMAKE_CFLAGS_WARN_OFF
@@ -63,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_CORE         = $$QMAKE_LIBS -llibpthread -lefsrv -lcharconv
-QMAKE_LIBS_GUI          = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lhal -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc
+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
+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
@@ -82,23 +98,15 @@
     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		= $${EPOCROOT}epoc32/tools/qt/moc.exe
-QMAKE_UIC		= $${EPOCROOT}epoc32/tools/qt/uic.exe
-QMAKE_IDC		= $${EPOCROOT}epoc32/tools/qt/idc.exe
+QMAKE_MOC		= /epoc32/tools/qt/moc$$(DOTEXE)
+QMAKE_UIC		= /epoc32/tools/qt/uic$$(DOTEXE)
+QMAKE_IDC		= /epoc32/tools/qt/idc$$(DOTEXE)
 
 QMAKE_IDL		= midl
-QMAKE_LIB		= $${EPOCROOT}epoc32/gcc_mingw/bin/ar -ru
-QMAKE_RC		= $${EPOCROOT}epoc32/gcc_mingw/bin/windres
+QMAKE_LIB		= /epoc32/gcc_mingw/bin/ar -ru
+QMAKE_RC		= /epoc32/gcc_mingw/bin/windres
 QMAKE_ZIP		= zip -r -9
 
 QMAKE_STRIP		= $${EPOCROOT}epoc32/gcc_mingw/bin/strip
@@ -106,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
@@ -114,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\"}" \
@@ -144,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
+