# # qmake configuration for symbian-gcce # include(../common/symbian/symbian-makefile.conf) include(../common/g++.conf) QMAKE_CC = arm-none-symbianelf-gcc QMAKE_CXX = arm-none-symbianelf-g++ QMAKE_LINK = arm-none-symbianelf-ld QMAKE_LINK_SHLIB = arm-none-symbianelf-ld QMAKE_LINK_C = arm-none-symbianelf-ld QMAKE_LINK_C_SHLIB = arm-none-symbianelf-ld QMAKE_AR = arm-none-symbianelf-ar cqs # gcce defaults to 'arm' instruction set. Lets use the better 'thumb' if possible # notice that the middle part of the following set of vars matches the TARGET content of the libs QMAKE_qtmain_CXXFLAGS = -mthumb QMAKE_QtCore_CXXFLAGS = -mthumb QMAKE_QtGui_LFLAGS = -Ttext 0x8000 -Tdata 0xE00000 QMAKE_QtDBus_CXXFLAGS = -mthumb QMAKE_QtDeclarative_CXXFLAGS = -mthumb QMAKE_QtMultimedia_CXXFLAGS = -mthumb QMAKE_QtNetwork_CXXFLAGS = -mthumb QMAKE_QtOpenGL_CXXFLAGS = -mthumb QMAKE_QtOpenVG_CXXFLAGS = -mthumb QMAKE_phonon_CXXFLAGS = -mthumb QMAKE_QtScript_CXXFLAGS = -mthumb QMAKE_QtScriptTools_CXXFLAGS = -mthumb QMAKE_QtSql_CXXFLAGS = -mthumb QMAKE_QtSvg_CXXFLAGS = -mthumb QMAKE_QtTest_CXXFLAGS = -mthumb QMAKE_QtXmlPatterns_CXXFLAGS = -mthumb QMAKE_QtXml_CXXFLAGS = -mthumb #TODO fails with; arm-none-symbianelf-ld: section .data loaded at [00e00000,00e05973] overlaps section .text loaded at [00008000,00fe748b] QMAKE_QtWebKit_LFLAGS = -Ttext 0x8000 -Tdata 0xE00000 # never use -fPIC, gcce-linker doesn't like it. # g++ conf above adds it if the host platform is 64 bit, so we remove it again QMAKE_CFLAGS_SHLIB -= -fPIC QMAKE_CFLAGS_STATIC_LIB -= -fPIC QMAKE_CXXFLAGS_SHLIB -= -fPIC QMAKE_CXXFLAGS_STATIC_LIB -= -fPIC QMAKE_LFLAGS_SONAME = #QMAKE_LFLAGS_THREAD += QMAKE_LFLAGS_NOUNDEF = QMAKE_LFLAGS_RPATH = --rpath= DEFINES += __GCCE__ \ UNICODE QMAKE_LFLAGS_APP += --entry=_E32Startup -u _E32Startup QMAKE_LFLAGS_SHLIB += -shared --default-symver --entry=_E32Dll -u _E32Dll QMAKE_LFLAGS_PLUGIN += $$QMAKE_LFLAGS_SHLIB gcceExtraFlags = --include=$${EPOCROOT}epoc32/include/gcce/gcce.h -march=armv5t -mapcs -mthumb-interwork -nostdinc -c -msoft-float -T script QMAKE_CFLAGS += $${gcceExtraFlags} QMAKE_CXXFLAGS += $${gcceExtraFlags} -x c++ -fexceptions -fno-unit-at-a-time -fvisibility-inlines-hidden #If we are not going to link to Qt or qtmain.lib, we need to include this at least once. isEmpty(QT):contains(TEMPLATE, app) { QMAKE_CXXFLAGS += --include=$${EPOCROOT}epoc32/include/stdapis/staticlibinit_gcce.h } QMAKE_LFLAGS += --target1-abs \ --no-undefined \ --nostdlib QMAKE_LIBDIR += $${EPOCROOT}epoc32/release/armv5/udeb/ # g++ knows the path to the gcc-shipped-libs, ld doesn't. So cache the full path in the generate Makefile QMAKE_GCC_SEARCH_DIRS = $$system($$QMAKE_CXX -print-search-dirs) QMAKE_GCC_SEARCH_DIRS = "$$join(QMAKE_GCC_SEARCH_DIRS, " ")" QMAKE_GCC_SEARCH_DIRS = $$replace(QMAKE_GCC_SEARCH_DIRS, ".*libraries: *", "") QMAKE_GCC_SEARCH_DIRS = $$replace(QMAKE_GCC_SEARCH_DIRS, "=", "") contains(QMAKE_HOST.os,Windows) { QMAKE_GCC_SEARCH_DIRS = $$split(QMAKE_GCC_SEARCH_DIRS, ;) } else { QMAKE_GCC_SEARCH_DIRS = $$split(QMAKE_GCC_SEARCH_DIRS, :) } for(line, QMAKE_GCC_SEARCH_DIRS):QMAKE_LIBDIR += $$line QMAKE_LIBDIR += $${EPOCROOT}epoc32/release/armv5/lib INCLUDEPATH = $${EPOCROOT}epoc32/include/ \ $${EPOCROOT}epoc32/include/variant \ $${EPOCROOT}epoc32/include/stdapis \ $${EPOCROOT}epoc32/include/gcce \ $$INCLUDEPATH