mkspecs/common/symbian/symbian.conf
branchRCL_3
changeset 7 3f74d0d4af4c
parent 5 d3bac044e0f0
child 13 c0432d11811c
equal deleted inserted replaced
6:dee5afe5301f 7:3f74d0d4af4c
    24 QMAKE_CFLAGS_WARN_OFF	=
    24 QMAKE_CFLAGS_WARN_OFF	=
    25 QMAKE_CFLAGS_RELEASE	=
    25 QMAKE_CFLAGS_RELEASE	=
    26 QMAKE_CFLAGS_DEBUG	=
    26 QMAKE_CFLAGS_DEBUG	=
    27 QMAKE_CFLAGS_YACC	= -Wno-unused -Wno-parentheses
    27 QMAKE_CFLAGS_YACC	= -Wno-unused -Wno-parentheses
    28 
    28 
       
    29 
       
    30 VERSION_FLAGS.ARMCC = ARMCC_4_0
    29 QMAKE_CXX		= g++
    31 QMAKE_CXX		= g++
    30 QMAKE_CXXFLAGS		= $$QMAKE_CFLAGS
    32 QMAKE_CXXFLAGS		= $$QMAKE_CFLAGS
    31 QMAKE_CXXFLAGS.CW	= 
    33 QMAKE_CXXFLAGS.CW	= 
    32 QMAKE_CXXFLAGS.ARMCC	= --visibility_inlines_hidden
    34 QMAKE_CXXFLAGS.ARMCC      = --visibility_inlines_hidden
       
    35 QMAKE_CXXFLAGS.ARMCC_4_0  = --import_all_vtbl
    33 QMAKE_CXXFLAGS.GCCE	= -fvisibility-inlines-hidden
    36 QMAKE_CXXFLAGS.GCCE	= -fvisibility-inlines-hidden
    34 QMAKE_CXXFLAGS_DEPS	= $$QMAKE_CFLAGS_DEPS
    37 QMAKE_CXXFLAGS_DEPS	= $$QMAKE_CFLAGS_DEPS
    35 QMAKE_CXXFLAGS_WARN_ON	= $$QMAKE_CFLAGS_WARN_ON
    38 QMAKE_CXXFLAGS_WARN_ON	= $$QMAKE_CFLAGS_WARN_ON
    36 QMAKE_CXXFLAGS_WARN_OFF	= $$QMAKE_CFLAGS_WARN_OFF
    39 QMAKE_CXXFLAGS_WARN_OFF	= $$QMAKE_CFLAGS_WARN_OFF
    37 QMAKE_CXXFLAGS_RELEASE	= $$QMAKE_CFLAGS_RELEASE
    40 QMAKE_CXXFLAGS_RELEASE	= $$QMAKE_CFLAGS_RELEASE
    62 QMAKE_LFLAGS_WINDOWS    =
    65 QMAKE_LFLAGS_WINDOWS    =
    63 QMAKE_LFLAGS_DLL        =
    66 QMAKE_LFLAGS_DLL        =
    64 QMAKE_LINK_OBJECT_MAX   =
    67 QMAKE_LINK_OBJECT_MAX   =
    65 QMAKE_LINK_OBJECT_SCRIPT=
    68 QMAKE_LINK_OBJECT_SCRIPT=
    66 
    69 
    67 QMAKE_LIBS              = -llibc -llibm -leuser -llibdl -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc -lavkon -lefsrv -lcharconv -lws32 -lhal -lgdi -lapgrfx
    70 QMAKE_LIBS		= -llibc -llibm -leuser -llibdl
    68 QMAKE_LIBS_CORE         = $$QMAKE_LIBS -llibpthread -lefsrv
    71 QMAKE_LIBS_CORE         = $$QMAKE_LIBS -llibpthread -lefsrv
    69 QMAKE_LIBS_GUI          = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lhal -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc -lcentralrepository
    72 QMAKE_LIBS_GUI          = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lhal -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc -lcentralrepository
    70 QMAKE_LIBS_NETWORK      = 
    73 QMAKE_LIBS_NETWORK      = 
    71 QMAKE_LIBS_EGL          = -llibEGL
    74 QMAKE_LIBS_EGL          = -llibEGL
    72 QMAKE_LIBS_OPENGL       = 
    75 QMAKE_LIBS_OPENGL       = 
    73 QMAKE_LIBS_OPENVG       = -llibOpenVG -lgraphicsresource -lfbscli -lbitgdi -lgdi
    76 QMAKE_LIBS_OPENVG       = -llibOpenVG -lfbscli -lbitgdi -lgdi
    74 QMAKE_LIBS_COMPAT       = 
    77 QMAKE_LIBS_COMPAT       = 
    75 QMAKE_LIBS_QT_ENTRY     = -llibcrt0.lib
    78 QMAKE_LIBS_QT_ENTRY     = -llibcrt0.lib
    76 QMAKE_LIBS_S60          = -lavkon
    79 QMAKE_LIBS_S60          = -lavkon
    77 
    80 
    78 !isEmpty(QMAKE_SH) {
    81 exists($${EPOCROOT}epoc32/include/platform/sgresource/sgimage.h) {
       
    82     QMAKE_LIBS_OPENVG += -lsgresource
       
    83 }
       
    84 
       
    85 contains(QMAKE_HOST.os,Windows) {
       
    86     QMAKE_COPY           = copy /y
       
    87     QMAKE_COPY_DIR       = xcopy /s /q /y /i
       
    88     QMAKE_MOVE           = move
       
    89     QMAKE_DEL_FILE       = del
       
    90     QMAKE_MKDIR          = mkdir
       
    91     QMAKE_DEL_DIR        = rmdir
       
    92     QMAKE_CHK_DIR_EXISTS = if not exist
       
    93 } else {
    79     QMAKE_COPY           = cp
    94     QMAKE_COPY           = cp
    80     QMAKE_COPY_DIR       = cp -r
    95     QMAKE_COPY_DIR       = cp -r
    81     QMAKE_MOVE           = mv
    96     QMAKE_MOVE           = mv
    82     QMAKE_DEL_FILE       = rm -f
    97     QMAKE_DEL_FILE       = rm -f
    83     QMAKE_MKDIR          = mkdir
    98     QMAKE_MKDIR          = mkdir
    84     QMAKE_DEL_DIR        = rmdir
    99     QMAKE_DEL_DIR        = rmdir
    85     QMAKE_CHK_DIR_EXISTS = test -d
   100     QMAKE_CHK_DIR_EXISTS = test -d
    86 } else {
       
    87     QMAKE_COPY           = copy /y
       
    88     QMAKE_COPY_DIR       = xcopy /s /q /y /i
       
    89     QMAKE_MOVE           = move
       
    90     QMAKE_DEL_FILE       = del
       
    91     QMAKE_MKDIR          = mkdir
       
    92     QMAKE_DEL_DIR        = rmdir
       
    93     QMAKE_CHK_DIR_EXISTS = if not exist
       
    94 }
   101 }
    95 
   102 
    96 QMAKE_MOC		= /epoc32/tools/qt/moc$$(DOTEXE)
   103 QMAKE_MOC		= /epoc32/tools/qt/moc$$(DOTEXE)
    97 QMAKE_UIC		= /epoc32/tools/qt/uic$$(DOTEXE)
   104 QMAKE_UIC		= /epoc32/tools/qt/uic$$(DOTEXE)
    98 QMAKE_IDC		= /epoc32/tools/qt/idc$$(DOTEXE)
   105 QMAKE_IDC		= /epoc32/tools/qt/idc$$(DOTEXE)
   105 QMAKE_STRIP		= $${EPOCROOT}epoc32/gcc_mingw/bin/strip
   112 QMAKE_STRIP		= $${EPOCROOT}epoc32/gcc_mingw/bin/strip
   106 QMAKE_STRIPFLAGS_LIB 	+= --strip-unneeded
   113 QMAKE_STRIPFLAGS_LIB 	+= --strip-unneeded
   107 
   114 
   108 load(qt_config)
   115 load(qt_config)
   109 load(platform_paths)
   116 load(platform_paths)
       
   117 load(add_mmp_rules)
   110 
   118 
   111 symbian-abld {
   119 symbian-abld {
   112 # Versions of abld prior to Symbian^3 have a bug where you cannot remove something from the command line without replacing it
   120 # Versions of abld prior to Symbian^3 have a bug where you cannot remove something from the command line without replacing it
   113 # Rather than figure out which version of abld we're using, we'll replace the command with a macro *that should never be used*
   121 # Rather than figure out which version of abld we're using, we'll replace the command with a macro *that should never be used*
   114     MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA = "OPTION_REPLACE ARMCC --export_all_vtbl -D__QT_NOEFFECTMACRO_DONOTUSE"
   122     MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA = "OPTION_REPLACE ARMCC --export_all_vtbl -D__QT_NOEFFECTMACRO_DONOTUSE"
   115 } else {
   123 } else {
   116     MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA = "OPTION_REPLACE ARMCC --export_all_vtbl // don't use --export_all_vtbl"
   124     MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA = "OPTION_REPLACE ARMCC --export_all_vtbl // don't use --export_all_vtbl"
   117 }
   125 }
   118 MMP_RULES += PAGED
   126 MMP_RULES += PAGED BYTEPAIRCOMPRESSTARGET
   119 MMP_RULES += $$MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA
   127 MMP_RULES += $$MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA
   120 SYMBIAN_PLATFORMS = WINSCW GCCE ARMV5 ARMV6
   128 SYMBIAN_PLATFORMS = WINSCW GCCE ARMV5 ARMV6
   121 
   129 
   122 # Legacy support requires some hardcoded stdapis paths. 
       
   123 INCLUDEPATH = \
   130 INCLUDEPATH = \
   124     $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian/stl-off \
   131     $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian/stl-off \
   125     $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian \
   132     $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian \
   126     $${EPOCROOT}epoc32/include \
   133     $${EPOCROOT}epoc32/include \
   127     $$OS_LAYER_LIBC_SYSTEMINCLUDE \
   134     $$OS_LAYER_LIBC_SYSTEMINCLUDE \
   128     $$INCLUDEPATH
   135     $$INCLUDEPATH
   129     
   136 
       
   137 # Ensure '.' directory is the first in include path.
       
   138 # RVCT seems to do this automatically, but WINSCW compiler does not, so add it here.
       
   139 MMP_RULES += "USERINCLUDE ."
       
   140 
       
   141 # pkg_depends_webkit, pkg_depends_core, and pkg_platform_dependencies can be removed by developer
       
   142 # if multiple languages need to be supported by pkg file. In that case the developer should declare
       
   143 # multiple language compatible dependency statements him/herself.
       
   144 
       
   145 default_deployment.pkg_prerules += pkg_depends_webkit pkg_depends_qt pkg_platform_dependencies
       
   146 
   130 # Supports S60 3.0, 3.1, 3.2 and 5.0 by default
   147 # Supports S60 3.0, 3.1, 3.2 and 5.0 by default
   131 default_deployment.pkg_prerules = \
   148 pkg_platform_dependencies = \
   132     "; Default HW/platform dependencies" \
   149     "; Default HW/platform dependencies" \
   133     "[0x101F7961],0,0,0,{\"S60ProductID\"}" \
   150     "[0x101F7961],0,0,0,{\"S60ProductID\"}" \
   134     "[0x102032BE],0,0,0,{\"S60ProductID\"}" \
   151     "[0x102032BE],0,0,0,{\"S60ProductID\"}" \
   135     "[0x102752AE],0,0,0,{\"S60ProductID\"}" \
   152     "[0x102752AE],0,0,0,{\"S60ProductID\"}" \
   136     "[0x1028315F],0,0,0,{\"S60ProductID\"}" \
   153     "[0x1028315F],0,0,0,{\"S60ProductID\"}" \
   143 } else {
   160 } else {
   144     exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/Series60v3.2.sis )|exists($${EPOCROOT}epoc32/data/z/system/install/Series60v3.2.sis) {
   161     exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/Series60v3.2.sis )|exists($${EPOCROOT}epoc32/data/z/system/install/Series60v3.2.sis) {
   145         S60_VERSION = 3.2
   162         S60_VERSION = 3.2
   146     } else {
   163     } else {
   147         S60_VERSION = 3.1
   164         S60_VERSION = 3.1
   148         MMP_RULES -= PAGED
   165         MMP_RULES -= PAGED BYTEPAIRCOMPRESSTARGET
   149     }
   166     }
   150 }
   167 }
       
   168 
       
   169 QMAKE_CXXFLAGS_FAST_VFP.ARMCC = --fpmode fast
       
   170 # [TODO] QMAKE_CXXFLAGS_FAST_VFP.GCCE =
       
   171 
       
   172 symbian {
       
   173     armfpu = $$find(MMP_RULES, "ARMFPU")
       
   174     !isEmpty(armfpu) {
       
   175         vfpv2 = $$find(MMP_RULES, "vfpv2")
       
   176         !isEmpty(vfpv2) {
       
   177             # we will respect fpu setting obtained from configure, but,
       
   178             # if vfpv2 or softvfp+vfpv2 used we want to force RunFast VFP mode
       
   179             QMAKE_CXXFLAGS.ARMCC += $${QMAKE_CXXFLAGS_FAST_VFP.ARMCC}
       
   180             # [TODO] QMAKE_CXXFLAGS.GCCE += $${QMAKE_CXXFLAGS_FAST_VFP.GCCE}
       
   181         }
       
   182     }
       
   183 }
       
   184 
       
   185 # QMAKE_CXXFLAGS.ARMCC doesn't provide support for conditional options, so use MMP_RULES # to enable support for newer armcc compilers.
       
   186 # MMP files support combining multiple OPTION statements, so this is not a problem.
       
   187 newArmccRule = \
       
   188     "$${LITERAL_HASH}if defined(ARMCC) && !defined(ARMCC_2_2) && !defined(ARMCC_3_1)"\
       
   189     "OPTION ARMCC --import_all_vtbl" \
       
   190     "$${LITERAL_HASH}endif"
       
   191 MMP_RULES += newArmccRule
       
   192