mkspecs/common/symbian/symbian.conf
changeset 7 f7bc934e204c
parent 3 41300fa6a67c
equal deleted inserted replaced
3:41300fa6a67c 7:f7bc934e204c
    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
       
    36 QMAKE_CXXFLAGS.GCCE	= -fvisibility-inlines-hidden
    33 QMAKE_CXXFLAGS_DEPS	= $$QMAKE_CFLAGS_DEPS
    37 QMAKE_CXXFLAGS_DEPS	= $$QMAKE_CFLAGS_DEPS
    34 QMAKE_CXXFLAGS_WARN_ON	= $$QMAKE_CFLAGS_WARN_ON
    38 QMAKE_CXXFLAGS_WARN_ON	= $$QMAKE_CFLAGS_WARN_ON
    35 QMAKE_CXXFLAGS_WARN_OFF	= $$QMAKE_CFLAGS_WARN_OFF
    39 QMAKE_CXXFLAGS_WARN_OFF	= $$QMAKE_CFLAGS_WARN_OFF
    36 QMAKE_CXXFLAGS_RELEASE	= $$QMAKE_CFLAGS_RELEASE
    40 QMAKE_CXXFLAGS_RELEASE	= $$QMAKE_CFLAGS_RELEASE
    37 QMAKE_CXXFLAGS_DEBUG	= $$QMAKE_CFLAGS_DEBUG
    41 QMAKE_CXXFLAGS_DEBUG	= $$QMAKE_CFLAGS_DEBUG
    61 QMAKE_LFLAGS_WINDOWS    =
    65 QMAKE_LFLAGS_WINDOWS    =
    62 QMAKE_LFLAGS_DLL        =
    66 QMAKE_LFLAGS_DLL        =
    63 QMAKE_LINK_OBJECT_MAX   =
    67 QMAKE_LINK_OBJECT_MAX   =
    64 QMAKE_LINK_OBJECT_SCRIPT=
    68 QMAKE_LINK_OBJECT_SCRIPT=
    65 
    69 
    66 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
    67 QMAKE_LIBS_CORE         = $$QMAKE_LIBS -llibpthread -lefsrv -lcharconv
    71 QMAKE_LIBS_CORE         = $$QMAKE_LIBS -llibpthread -lefsrv
    68 QMAKE_LIBS_GUI          = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lhal -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc
    72 QMAKE_LIBS_GUI          = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lhal -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc -lcentralrepository
    69 QMAKE_LIBS_NETWORK      = 
    73 QMAKE_LIBS_NETWORK      = 
    70 QMAKE_LIBS_EGL          = -llibEGL
    74 QMAKE_LIBS_EGL          = -llibEGL
    71 QMAKE_LIBS_OPENGL       = 
    75 QMAKE_LIBS_OPENGL       = 
    72 QMAKE_LIBS_OPENVG       = -llibOpenVG -lgraphicsresource
    76 QMAKE_LIBS_OPENVG       = -llibOpenVG -lfbscli -lbitgdi -lgdi
    73 QMAKE_LIBS_COMPAT       = 
    77 QMAKE_LIBS_COMPAT       = 
    74 QMAKE_LIBS_QT_ENTRY     = -llibcrt0.lib
    78 QMAKE_LIBS_QT_ENTRY     = -llibcrt0.lib
    75 QMAKE_LIBS_S60          = -lavkon
    79 QMAKE_LIBS_S60          = -lavkon
    76 
    80 
    77 !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 {
    78     QMAKE_COPY           = cp
    94     QMAKE_COPY           = cp
    79     QMAKE_COPY_DIR       = cp -r
    95     QMAKE_COPY_DIR       = cp -r
    80     QMAKE_MOVE           = mv
    96     QMAKE_MOVE           = mv
    81     QMAKE_DEL_FILE       = rm -f
    97     QMAKE_DEL_FILE       = rm -f
    82     QMAKE_MKDIR          = mkdir
    98     QMAKE_MKDIR          = mkdir
    83     QMAKE_DEL_DIR        = rmdir
    99     QMAKE_DEL_DIR        = rmdir
    84     QMAKE_CHK_DIR_EXISTS = test -d
   100     QMAKE_CHK_DIR_EXISTS = test -d
    85 } else {
       
    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 }
   101 }
    94 
   102 
    95 QMAKE_MOC		= $${EPOCROOT}epoc32/tools/qt/moc.exe
   103 QMAKE_MOC		= /epoc32/tools/qt/moc$$(DOTEXE)
    96 QMAKE_UIC		= $${EPOCROOT}epoc32/tools/qt/uic.exe
   104 QMAKE_UIC		= /epoc32/tools/qt/uic$$(DOTEXE)
    97 QMAKE_IDC		= $${EPOCROOT}epoc32/tools/qt/idc.exe
   105 QMAKE_IDC		= /epoc32/tools/qt/idc$$(DOTEXE)
    98 
   106 
    99 QMAKE_IDL		= midl
   107 QMAKE_IDL		= midl
   100 QMAKE_LIB		= $${EPOCROOT}epoc32/gcc_mingw/bin/ar -ru
   108 QMAKE_LIB		= /epoc32/gcc_mingw/bin/ar -ru
   101 QMAKE_RC		= $${EPOCROOT}epoc32/gcc_mingw/bin/windres
   109 QMAKE_RC		= /epoc32/gcc_mingw/bin/windres
   102 QMAKE_ZIP		= zip -r -9
   110 QMAKE_ZIP		= zip -r -9
   103 
   111 
   104 QMAKE_STRIP		= $${EPOCROOT}epoc32/gcc_mingw/bin/strip
   112 QMAKE_STRIP		= $${EPOCROOT}epoc32/gcc_mingw/bin/strip
   105 QMAKE_STRIPFLAGS_LIB 	+= --strip-unneeded
   113 QMAKE_STRIPFLAGS_LIB 	+= --strip-unneeded
   106 
   114 
   107 load(qt_config)
   115 load(qt_config)
   108 load(platform_paths)
   116 load(platform_paths)
       
   117 load(add_mmp_rules)
   109 
   118 
   110 symbian-abld {
   119 symbian-abld {
   111 # 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
   112 # 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*
   113     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"
   114 } else {
   123 } else {
   115     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"
   116 }
   125 }
   117 MMP_RULES += PAGED
   126 MMP_RULES += PAGED BYTEPAIRCOMPRESSTARGET
   118 MMP_RULES += $$MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA
   127 MMP_RULES += $$MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA
   119 SYMBIAN_PLATFORMS = WINSCW GCCE ARMV5 ARMV6
   128 SYMBIAN_PLATFORMS = WINSCW GCCE ARMV5 ARMV6
   120 
   129 
   121 # Legacy support requires some hardcoded stdapis paths. 
       
   122 INCLUDEPATH = \
   130 INCLUDEPATH = \
   123     $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian/stl-off \
   131     $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian/stl-off \
   124     $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian \
   132     $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian \
   125     $${EPOCROOT}epoc32/include \
   133     $${EPOCROOT}epoc32/include \
   126     $$OS_LAYER_LIBC_SYSTEMINCLUDE \
   134     $$OS_LAYER_LIBC_SYSTEMINCLUDE \
   127     $$INCLUDEPATH
   135     $$INCLUDEPATH
   128     
   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 
   129 # 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
   130 default_deployment.pkg_prerules = \
   148 pkg_platform_dependencies = \
   131     "; Default HW/platform dependencies" \
   149     "; Default HW/platform dependencies" \
   132     "[0x101F7961],0,0,0,{\"S60ProductID\"}" \
   150     "[0x101F7961],0,0,0,{\"S60ProductID\"}" \
   133     "[0x102032BE],0,0,0,{\"S60ProductID\"}" \
   151     "[0x102032BE],0,0,0,{\"S60ProductID\"}" \
   134     "[0x102752AE],0,0,0,{\"S60ProductID\"}" \
   152     "[0x102752AE],0,0,0,{\"S60ProductID\"}" \
   135     "[0x1028315F],0,0,0,{\"S60ProductID\"}" \
   153     "[0x1028315F],0,0,0,{\"S60ProductID\"}" \
   142 } else {
   160 } else {
   143     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) {
   144         S60_VERSION = 3.2
   162         S60_VERSION = 3.2
   145     } else {
   163     } else {
   146         S60_VERSION = 3.1
   164         S60_VERSION = 3.1
   147         MMP_RULES -= PAGED
   165         MMP_RULES -= PAGED BYTEPAIRCOMPRESSTARGET
   148     }
   166     }
   149 }
   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