summaryrefslogtreecommitdiffstats
path: root/mkspecs/symbian/linux-gcce/qmake.conf
diff options
context:
space:
mode:
Diffstat (limited to 'mkspecs/symbian/linux-gcce/qmake.conf')
-rw-r--r--mkspecs/symbian/linux-gcce/qmake.conf31
1 files changed, 31 insertions, 0 deletions
diff --git a/mkspecs/symbian/linux-gcce/qmake.conf b/mkspecs/symbian/linux-gcce/qmake.conf
index cb30f61..3eb6d56 100644
--- a/mkspecs/symbian/linux-gcce/qmake.conf
+++ b/mkspecs/symbian/linux-gcce/qmake.conf
@@ -34,6 +34,7 @@ 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.
@@ -47,3 +48,33 @@ QMAKE_LFLAGS_SONAME =
#QMAKE_LFLAGS_THREAD +=
#QMAKE_LFLAGS_NOUNDEF += -Wl,--no-undefined
QMAKE_RPATH = --rpath=
+
+DEFINES += __GCCE__ \
+ UNICODE \
+ _STLP_NO_EXCEPTION_HEADER
+
+QMAKE_LFLAGS_APP += --entry _E32Startup
+QMAKE_LFLAGS_SHLIB += --default-symver
+
+gcceExtraFlags = -I${EPOCROOT}epoc32/include/ --include=${EPOCROOT}epoc32/include/gcce/gcce.h -march=armv5t -mapcs -mthumb-interwork -nostdinc -c -fvisibility-inlines-hidden -msoft-float -T script
+QMAKE_CFLAGS += $${gcceExtraFlags}
+QMAKE_CXXFLAGS += $${gcceExtraFlags} -x c++ -fexceptions -fno-unit-at-a-time
+
+QMAKE_LFLAGS += --target1-abs \
+ --no-undefined \
+ --strip-debug \
+ --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)
+for(line, QMAKE_GCC_SEARCH_DIRS) {
+ contains(line, "libraries:") {
+ foundIt="1"
+ } else {
+ contains(foundIt, "1") {
+ QMAKE_LFLAGS += $$replace(line, "[=:]", " -L")
+ }
+ }
+}