mkspecs/symbian/linux-gcce/qmake.conf
changeset 30 5dc02b23752f
equal deleted inserted replaced
29:b72c6db6890b 30:5dc02b23752f
       
     1 #
       
     2 # qmake configuration for symbian/linux-gcce
       
     3 #
       
     4 
       
     5 include(../../common/symbian/symbian-makefile.conf)
       
     6 
       
     7 include(../../common/g++.conf)
       
     8 
       
     9 QMAKE_CC		= arm-none-symbianelf-gcc
       
    10 QMAKE_CXX		= arm-none-symbianelf-g++
       
    11 QMAKE_LINK		= arm-none-symbianelf-ld
       
    12 QMAKE_LINK_SHLIB	= arm-none-symbianelf-ld
       
    13 QMAKE_LINK_C		= arm-none-symbianelf-ld
       
    14 QMAKE_LINK_C_SHLIB	= arm-none-symbianelf-ld
       
    15 QMAKE_AR		= arm-none-symbianelf-ar cqs
       
    16 
       
    17 # gcce defaults to 'arm' instruction set.  Lets use the better 'thumb' if possible
       
    18 # notice that the middle part of the following set of vars matches the TARGET content of the libs
       
    19 
       
    20 QMAKE_qtmain_CXXFLAGS	= -mthumb
       
    21 QMAKE_QtCore_CXXFLAGS	= -mthumb
       
    22 QMAKE_QtGui_LFLAGS	= -Ttext 0x8000 -Tdata 0xE00000
       
    23 QMAKE_QtDBus_CXXFLAGS	= -mthumb
       
    24 QMAKE_QtDeclarative_CXXFLAGS	= -mthumb
       
    25 QMAKE_QtMultimedia_CXXFLAGS	= -mthumb
       
    26 QMAKE_QtNetwork_CXXFLAGS	= -mthumb
       
    27 QMAKE_QtOpenGL_CXXFLAGS	= -mthumb
       
    28 QMAKE_QtOpenVG_CXXFLAGS	= -mthumb
       
    29 QMAKE_phonon_CXXFLAGS	= -mthumb
       
    30 QMAKE_QtScript_CXXFLAGS	= -mthumb
       
    31 QMAKE_QtScriptTools_CXXFLAGS	= -mthumb
       
    32 QMAKE_QtSql_CXXFLAGS	= -mthumb
       
    33 QMAKE_QtSvg_CXXFLAGS	= -mthumb
       
    34 QMAKE_QtTest_CXXFLAGS	= -mthumb
       
    35 QMAKE_QtXmlPatterns_CXXFLAGS	= -mthumb
       
    36 QMAKE_QtXml_CXXFLAGS	= -mthumb
       
    37 #TODO fails with; arm-none-symbianelf-ld: section .data loaded at [00e00000,00e05973] overlaps section .text loaded at [00008000,00fe748b]
       
    38 QMAKE_QtWebKit_LFLAGS	= -Ttext 0x8000 -Tdata 0xE00000
       
    39 
       
    40 # never use -fPIC, gcce-linker doesn't like it.
       
    41 # g++ conf above adds it if the host platform is 64 bit, so we remove it again
       
    42 QMAKE_CFLAGS_SHLIB	-= -fPIC
       
    43 QMAKE_CFLAGS_STATIC_LIB	-= -fPIC
       
    44 QMAKE_CXXFLAGS_SHLIB	-= -fPIC
       
    45 QMAKE_CXXFLAGS_STATIC_LIB	-= -fPIC
       
    46 
       
    47 QMAKE_LFLAGS_SONAME	=
       
    48 #QMAKE_LFLAGS_THREAD	+=
       
    49 #QMAKE_LFLAGS_NOUNDEF	+= -Wl,--no-undefined
       
    50 QMAKE_LFLAGS_RPATH	= --rpath=
       
    51 
       
    52 DEFINES		+= __GCCE__ \
       
    53                    UNICODE \
       
    54                    _STLP_NO_EXCEPTION_HEADER
       
    55 
       
    56 QMAKE_LFLAGS_APP        += --entry=_E32Startup -u _E32Startup
       
    57 QMAKE_LFLAGS_SHLIB      += --default-symver --entry _E32Dll
       
    58 QMAKE_LFLAGS_PLUGIN     += $$QMAKE_LFLAGS_SHLIB
       
    59 
       
    60 gcceExtraFlags = --include=${EPOCROOT}/epoc32/include/gcce/gcce.h -march=armv5t -mapcs -mthumb-interwork -nostdinc -c -msoft-float -T script
       
    61 QMAKE_CFLAGS += $${gcceExtraFlags}
       
    62 QMAKE_CXXFLAGS += $${gcceExtraFlags} -x c++ -fexceptions -fno-unit-at-a-time -fvisibility-inlines-hidden
       
    63 #If we are not going to link to Qt or qtmain.lib, we need to include this at least once.
       
    64 isEmpty(QT):contains(TEMPLATE, app) {
       
    65     QMAKE_CXXFLAGS += --include=${EPOCROOT}/epoc32/include/stdapis/staticlibinit_gcce.h
       
    66 }
       
    67 
       
    68 QMAKE_LFLAGS += --target1-abs \
       
    69                 --no-undefined \
       
    70                 --nostdlib
       
    71 
       
    72 QMAKE_LIBDIR	+= ${EPOCROOT}/epoc32/release/armv5/udeb/
       
    73 
       
    74 # g++ knows the path to the gcc-shipped-libs, ld doesn't. So cache the full path in the generate Makefile
       
    75 QMAKE_GCC_SEARCH_DIRS =$$system($$QMAKE_CXX -print-search-dirs)
       
    76 for(line, QMAKE_GCC_SEARCH_DIRS) {
       
    77     contains(line, "libraries:") {
       
    78         foundIt="1"
       
    79     } else {
       
    80         contains(foundIt, "1") {
       
    81             QMAKE_LFLAGS += $$replace(line, "[=:]", " -L")
       
    82         }
       
    83     }
       
    84 }
       
    85 
       
    86 QMAKE_LIBDIR += $${EPOCROOT}/epoc32/release/armv5/lib
       
    87 
       
    88 INCLUDEPATH = ${EPOCROOT}/epoc32/include/ \
       
    89     $${EPOCROOT}/epoc32/include/variant \
       
    90     $${EPOCROOT}/epoc32/include/stdapis \
       
    91     $${EPOCROOT}/epoc32/include/gcce \
       
    92     ${EPOCROOT}/epoc32/include/stdapis/sys \
       
    93     ${EPOCROOT}/epoc32/include/stdapis/stlport \
       
    94     $$INCLUDEPATH
       
    95