mkspecs/common/symbian/symbian.conf
changeset 30 5dc02b23752f
parent 22 79de32ba3296
child 33 3e2da88830cd
equal deleted inserted replaced
29:b72c6db6890b 30:5dc02b23752f
     1 #
     1 #
     2 # qmake configuration for symbian-*
     2 # qmake configuration for all symbian mkspecs
     3 #
     3 #
     4 
     4 
     5 TEMPLATE		= app
     5 TEMPLATE		= app
     6 CONFIG			+= qt warn_on release incremental
     6 CONFIG			+= qt warn_on release incremental link_prl sis_targets
     7 QT			+= core gui
     7 QT			+= core gui
     8 QMAKE_INCREMENTAL_STYLE = sublib
     8 QMAKE_INCREMENTAL_STYLE = sublib
     9 
     9 
    10 DEFINES			+= UNICODE QT_KEYPAD_NAVIGATION QT_SOFTKEYS_ENABLED QT_USE_MATH_H_FLOATS
    10 DEFINES			+= UNICODE QT_KEYPAD_NAVIGATION QT_SOFTKEYS_ENABLED QT_USE_MATH_H_FLOATS
       
    11 
    11 QMAKE_COMPILER_DEFINES  += SYMBIAN
    12 QMAKE_COMPILER_DEFINES  += SYMBIAN
    12 
    13 
    13 QMAKE_EXT_OBJ           = .o
    14 QMAKE_EXT_OBJ           = .o
    14 QMAKE_EXT_RES           = _res.o
    15 QMAKE_EXT_RES           = _res.o
    15 
    16 
    16 QMAKE_CC		= gcc
       
    17 QMAKE_LEX		= flex
    17 QMAKE_LEX		= flex
    18 QMAKE_LEXFLAGS		=
    18 QMAKE_LEXFLAGS		=
    19 QMAKE_YACC		= byacc
    19 QMAKE_YACC		= byacc
    20 QMAKE_YACCFLAGS		= -d
    20 QMAKE_YACCFLAGS		= -d
    21 QMAKE_CFLAGS		=
    21 QMAKE_CFLAGS		=
    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 MMP_OPTION_KEYWORDS = CW ARMCC GCCE
    29 MMP_OPTION_KEYWORDS = CW ARMCC GCCE
    30 VERSION_FLAGS.ARMCC = ARMCC_4_0
    30 VERSION_FLAGS.ARMCC = ARMCC_4_0
    31 QMAKE_CXX		= g++
       
    32 QMAKE_CXXFLAGS		= $$QMAKE_CFLAGS
    31 QMAKE_CXXFLAGS		= $$QMAKE_CFLAGS
    33 QMAKE_CXXFLAGS.CW	= 
    32 # Symbian build system applies -cwd source on the MWCC command line.
       
    33 # this causes problems with include paths, -cwd include uses the same
       
    34 # rules for include paths as ARMCC
       
    35 # This should really be fixed in raptor, as using CXXFLAGS means we pass
       
    36 # both on the command line and rely on the compiler using the last specified
       
    37 QMAKE_CXXFLAGS.CW	= -cwd include
    34 QMAKE_CXXFLAGS.ARMCC      = --visibility_inlines_hidden
    38 QMAKE_CXXFLAGS.ARMCC      = --visibility_inlines_hidden
    35 QMAKE_CXXFLAGS.ARMCC_4_0  = --import_all_vtbl
    39 QMAKE_CXXFLAGS.ARMCC_4_0  = --import_all_vtbl
    36 QMAKE_CXXFLAGS.GCCE	= -fvisibility-inlines-hidden
    40 QMAKE_CXXFLAGS.GCCE	= -fvisibility-inlines-hidden
    37 QMAKE_CXXFLAGS_DEPS	= $$QMAKE_CFLAGS_DEPS
    41 QMAKE_CXXFLAGS_DEPS	= $$QMAKE_CFLAGS_DEPS
    38 QMAKE_CXXFLAGS_WARN_ON	= $$QMAKE_CFLAGS_WARN_ON
    42 QMAKE_CXXFLAGS_WARN_ON	= $$QMAKE_CFLAGS_WARN_ON
    47 QMAKE_CXXFLAGS_EXCEPTIONS_OFF =
    51 QMAKE_CXXFLAGS_EXCEPTIONS_OFF =
    48 
    52 
    49 QMAKE_INCDIR		=
    53 QMAKE_INCDIR		=
    50 QMAKE_INCDIR_QT		= $$[QT_INSTALL_HEADERS]
    54 QMAKE_INCDIR_QT		= $$[QT_INSTALL_HEADERS]
    51 
    55 
    52 QMAKE_RUN_CC		= $(CC) -c $(CFLAGS) $(INCPATH) -o $obj $src
       
    53 QMAKE_RUN_CC_IMP	= $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
       
    54 QMAKE_RUN_CXX		= $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $obj $src
       
    55 QMAKE_RUN_CXX_IMP	= $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
       
    56 
       
    57 QMAKE_LINK              =
       
    58 QMAKE_LFLAGS            =
    56 QMAKE_LFLAGS            =
    59 QMAKE_LFLAGS.ARMCC      = 
    57 QMAKE_LFLAGS.ARMCC      = 
    60 QMAKE_LFLAGS_EXCEPTIONS_ON =
    58 QMAKE_LFLAGS_EXCEPTIONS_ON =
    61 QMAKE_LFLAGS_EXCEPTIONS_OFF =
    59 QMAKE_LFLAGS_EXCEPTIONS_OFF =
    62 QMAKE_LFLAGS_RELEASE    =
    60 QMAKE_LFLAGS_RELEASE    =
    65 QMAKE_LFLAGS_WINDOWS    =
    63 QMAKE_LFLAGS_WINDOWS    =
    66 QMAKE_LFLAGS_DLL        =
    64 QMAKE_LFLAGS_DLL        =
    67 QMAKE_LINK_OBJECT_MAX   =
    65 QMAKE_LINK_OBJECT_MAX   =
    68 QMAKE_LINK_OBJECT_SCRIPT=
    66 QMAKE_LINK_OBJECT_SCRIPT=
    69 
    67 
    70 QMAKE_LIBS              = -llibc -llibm -leuser -llibdl -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc -lavkon -lefsrv -lcharconv -lws32 -lhal -lgdi -lapgrfx
    68 QMAKE_LIBS		= -llibc -llibm -leuser -llibdl
    71 QMAKE_LIBS_CORE         = $$QMAKE_LIBS -llibpthread -lefsrv
    69 QMAKE_LIBS_CORE         = $$QMAKE_LIBS -lefsrv -lhal -lbafl
    72 QMAKE_LIBS_GUI          = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lhal -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc -lcentralrepository
    70 QMAKE_LIBS_GUI          = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc -lcentralrepository
    73 QMAKE_LIBS_NETWORK      = 
    71 QMAKE_LIBS_NETWORK      = 
    74 QMAKE_LIBS_EGL          = -llibEGL
    72 QMAKE_LIBS_EGL          = -llibEGL
    75 QMAKE_LIBS_OPENGL       = 
    73 QMAKE_LIBS_OPENGL       = 
    76 QMAKE_LIBS_OPENVG       = -llibOpenVG -lfbscli -lbitgdi -lgdi
    74 QMAKE_LIBS_OPENVG       = -llibOpenVG -lfbscli -lbitgdi -lgdi
       
    75 QMAKE_LIBS_THREAD       = -llibpthread
    77 QMAKE_LIBS_COMPAT       = 
    76 QMAKE_LIBS_COMPAT       = 
    78 QMAKE_LIBS_QT_ENTRY     = -llibcrt0.lib
    77 QMAKE_LIBS_QT_ENTRY     = -llibcrt0.lib
    79 QMAKE_LIBS_S60          = -lavkon
    78 QMAKE_LIBS_S60          = -lavkon
    80 
    79 
    81 exists($${EPOCROOT}epoc32/include/platform/sgresource/sgimage.h) {
    80 exists($${EPOCROOT}epoc32/include/platform/sgresource/sgimage.h) {
    84 
    83 
    85 contains(QMAKE_HOST.os,Windows) {
    84 contains(QMAKE_HOST.os,Windows) {
    86     QMAKE_COPY           = copy /y
    85     QMAKE_COPY           = copy /y
    87     QMAKE_COPY_DIR       = xcopy /s /q /y /i
    86     QMAKE_COPY_DIR       = xcopy /s /q /y /i
    88     QMAKE_MOVE           = move
    87     QMAKE_MOVE           = move
    89     QMAKE_DEL_FILE       = del
    88     QMAKE_DEL_FILE       = del 2> NUL
    90     QMAKE_MKDIR          = mkdir
    89     QMAKE_MKDIR          = mkdir
    91     QMAKE_DEL_DIR        = rmdir
    90     QMAKE_DEL_DIR        = rmdir
       
    91     QMAKE_DEL_TREE       = rmdir /s /q
    92     QMAKE_CHK_DIR_EXISTS = if not exist
    92     QMAKE_CHK_DIR_EXISTS = if not exist
    93 } else {
    93 } else {
    94     QMAKE_COPY           = cp
    94     QMAKE_COPY           = cp
    95     QMAKE_COPY_DIR       = cp -r
    95     QMAKE_COPY_DIR       = cp -r
    96     QMAKE_MOVE           = mv
    96     QMAKE_MOVE           = mv
    97     QMAKE_DEL_FILE       = rm -f
    97     QMAKE_DEL_FILE       = rm -f
    98     QMAKE_MKDIR          = mkdir
    98     QMAKE_MKDIR          = mkdir
    99     QMAKE_DEL_DIR        = rmdir
    99     QMAKE_DEL_DIR        = rmdir
       
   100     QMAKE_DEL_TREE       = rm -rf
   100     QMAKE_CHK_DIR_EXISTS = test -d
   101     QMAKE_CHK_DIR_EXISTS = test -d
   101 }
   102 }
   102 
   103 
   103 QMAKE_MOC		= /epoc32/tools/moc$$(DOTEXE)
   104 QMAKE_IDL		  = midl
   104 QMAKE_UIC		= /epoc32/tools/uic$$(DOTEXE)
   105 QMAKE_LIB		  = ar -ru
   105 QMAKE_IDC		= /epoc32/tools/idc$$(DOTEXE)
   106 QMAKE_RC		  = windres
   106 QMAKE_RCC		= /epoc32/tools/rcc$$(DOTEXE)
   107 QMAKE_ZIP		  = zip -r -9
   107 
   108 
   108 QMAKE_IDL		= midl
   109 QMAKE_TAR                 = tar -cf
   109 QMAKE_LIB		= /epoc32/gcc_mingw/bin/ar -ru
   110 QMAKE_GZIP                = gzip -9f
   110 QMAKE_RC		= /epoc32/gcc_mingw/bin/windres
       
   111 QMAKE_ZIP		= zip -r -9
       
   112 
   111 
   113 QMAKE_STRIP		= $${EPOCROOT}epoc32/gcc_mingw/bin/strip
   112 QT_ARCH               = symbian
   114 QMAKE_STRIPFLAGS_LIB 	+= --strip-unneeded
       
   115 
       
   116 load(qt_config)
   113 load(qt_config)
   117 load(platform_paths)
   114 load(symbian/platform_paths)
   118 load(add_mmp_rules)
       
   119 
       
   120 symbian-abld {
       
   121 # Versions of abld prior to Symbian^3 have a bug where you cannot remove something from the command line without replacing it
       
   122 # Rather than figure out which version of abld we're using, we'll replace the command with a macro *that should never be used*
       
   123     MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA = "OPTION_REPLACE ARMCC --export_all_vtbl -D__QT_NOEFFECTMACRO_DONOTUSE"
       
   124 } else {
       
   125     MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA = "OPTION_REPLACE ARMCC --export_all_vtbl // don't use --export_all_vtbl"
       
   126 }
       
   127 MMP_RULES += PAGED BYTEPAIRCOMPRESSTARGET
       
   128 MMP_RULES += $$MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA
       
   129 SYMBIAN_PLATFORMS = WINSCW GCCE ARMV5 ARMV6
       
   130 
       
   131 INCLUDEPATH = \
       
   132     $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian/stl-off \
       
   133     $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian \
       
   134     $${EPOCROOT}epoc32/include \
       
   135     $$OS_LAYER_LIBC_SYSTEMINCLUDE \
       
   136     $$INCLUDEPATH
       
   137 
       
   138 # Ensure '.' directory is the first in include path.
       
   139 # RVCT seems to do this automatically, but WINSCW compiler does not, so add it here.
       
   140 MMP_RULES += "USERINCLUDE ."
       
   141 
   115 
   142 # pkg_depends_webkit, pkg_depends_core, and pkg_platform_dependencies can be removed by developer
   116 # pkg_depends_webkit, pkg_depends_core, and pkg_platform_dependencies can be removed by developer
   143 # if multiple languages need to be supported by pkg file. In that case the developer should declare
   117 # if multiple languages need to be supported by pkg file. In that case the developer should declare
   144 # multiple language compatible dependency statements him/herself.
   118 # multiple language compatible dependency statements him/herself.
   145 
   119 
   154     "[0x1028315F],0,0,0,{\"S60ProductID\"}" \
   128     "[0x1028315F],0,0,0,{\"S60ProductID\"}" \
   155     " "
   129     " "
   156 
   130 
   157 DEPLOYMENT += default_deployment
   131 DEPLOYMENT += default_deployment
   158 
   132 
   159 exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/Series60v5.0.sis )|exists($${EPOCROOT}epoc32/data/z/system/install/Series60v5.0.sis) {
       
   160     S60_VERSION = 5.0
       
   161 } else {
       
   162     exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/Series60v3.2.sis )|exists($${EPOCROOT}epoc32/data/z/system/install/Series60v3.2.sis) {
       
   163         S60_VERSION = 3.2
       
   164     } else {
       
   165         S60_VERSION = 3.1
       
   166         MMP_RULES -= PAGED BYTEPAIRCOMPRESSTARGET
       
   167     }
       
   168 }
       
   169 
       
   170 QMAKE_CXXFLAGS_FAST_VFP.ARMCC = --fpmode fast
       
   171 # [TODO] QMAKE_CXXFLAGS_FAST_VFP.GCCE =
       
   172 
       
   173 symbian {
       
   174     armfpu = $$find(MMP_RULES, "ARMFPU")
       
   175     !isEmpty(armfpu) {
       
   176         vfpv2 = $$find(MMP_RULES, "vfpv2")
       
   177         !isEmpty(vfpv2) {
       
   178             # we will respect fpu setting obtained from configure, but,
       
   179             # if vfpv2 or softvfp+vfpv2 used we want to force RunFast VFP mode
       
   180             QMAKE_CXXFLAGS.ARMCC += $${QMAKE_CXXFLAGS_FAST_VFP.ARMCC}
       
   181             # [TODO] QMAKE_CXXFLAGS.GCCE += $${QMAKE_CXXFLAGS_FAST_VFP.GCCE}
       
   182         }
       
   183     }
       
   184 }