summaryrefslogtreecommitdiffstats
path: root/mkspecs/symbian/linux-armcc/features/symbian_building.prf
diff options
context:
space:
mode:
Diffstat (limited to 'mkspecs/symbian/linux-armcc/features/symbian_building.prf')
-rw-r--r--mkspecs/symbian/linux-armcc/features/symbian_building.prf132
1 files changed, 132 insertions, 0 deletions
diff --git a/mkspecs/symbian/linux-armcc/features/symbian_building.prf b/mkspecs/symbian/linux-armcc/features/symbian_building.prf
new file mode 100644
index 0000000..8a0d121
--- /dev/null
+++ b/mkspecs/symbian/linux-armcc/features/symbian_building.prf
@@ -0,0 +1,132 @@
+QMAKE_CFLAGS += $$QMAKE_CFLAGS.ARMCC
+QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS.ARMCC
+
+isEmpty(DESTDIR) {
+ DESTDIR = .
+}
+
+for(libraries, LIBS) {
+ libraries = $$replace(libraries, "\.dll$", ".dso")
+ isFullName = $$find(libraries, \.)
+ isEmpty(isFullName) {
+ newLIBS += "$${libraries}.dso"
+ } else {
+ newLIBS += "$${libraries}"
+ }
+}
+LIBS = $$newLIBS
+newLIBS =
+for(libraries, QMAKE_LIBS) {
+ libraries = $$replace(libraries, "\.dll$", ".dso")
+ isFullName = $$find(libraries, \.)
+ isEmpty(isFullName) {
+ newLIBS += "$${libraries}.dso"
+ } else {
+ newLIBS += "$${libraries}"
+ }
+}
+QMAKE_LIBS = $$newLIBS
+
+# This needs to be done after the above LIBS mangling.
+include(../platformlibs.conf)
+
+elf2e32_LIBPATH =
+for(libPath, QMAKE_LIBDIR) {
+ elf2e32_LIBPATH += "--libpath=$$libPath"
+}
+
+# Check for version validity.
+!isEmpty(VERSION):!contains(VERSION, "[0-9]+"):!contains(VERSION, "[0-9]+\.[0-9]+")!contains(VERSION, "[0-9]+(\.[0-9]+){2}") {
+ error("Invalid VERSION for Symbian: $$VERSION")
+}
+
+splitVersion = $$split(VERSION, ".")
+# Default Symbian version if none is specified.
+isEmpty(splitVersion):splitVersion = 10
+hexVersion = "00"
+versionPart = 1
+versionPart1 = 10
+versionPart2 = 0
+versionPart3 = 0
+for(verNumber, splitVersion) {
+ # Poor man's printf
+ hexVersion = $$hexVersion$$system("sh -c 'printf %02x $$verNumber'")
+ contains(versionPart, 3) {
+ versionPart3 = $$verNumber
+ versionPart = 4
+ }
+ contains(versionPart, 2) {
+ versionPart2 = $$verNumber
+ versionPart = 3
+ }
+ contains(versionPart, 1) {
+ versionPart1 = $$verNumber
+ versionPart = 2
+ }
+}
+!contains(hexVersion, "[0-9a-z]{8}"):hexVersion = "$${hexVersion}00"
+!contains(hexVersion, "[0-9a-z]{8}"):hexVersion = "$${hexVersion}00"
+decVersion = $$sprintf("%1.%2", $$versionPart1, $$system("sh -c 'echo \$[$$versionPart2 * 256 + $$versionPart3]'"))
+
+intUid3 = $$lower($$replace(TARGET.UID3, "^0x", ""))
+isEmpty(TARGET.SID):TARGET.SID = $$TARGET.UID3
+isEmpty(TARGET.UID2):TARGET.UID2 = 0x00000000
+
+contains(TEMPLATE, lib):!contains(CONFIG, static):!contains(CONFIG, staticlib) {
+ !isEmpty($$QMAKE_POST_LINK):QMAKE_POST_LINK += &&
+ QMAKE_POST_LINK += $$QMAKE_MOVE $$DESTDIR/$${TARGET}.dll $$DESTDIR/$${TARGET}.sym
+ QMAKE_POST_LINK += && elf2e32 --version=$$decVersion --sid=$$TARGET.SID --uid1=0x10000079 --uid2=$$TARGET.UID2 --uid3=$$TARGET.UID3 --dlldata --heap=0x00020000,0x00800000 --stack=0x00014000 --capability=None --fpu=softvfp --targettype=DLL --elfinput=$${DESTDIR}/$${TARGET}.sym --output=$${DESTDIR}/$${TARGET}.dll --dso=$$DESTDIR/$${TARGET}.dso --defoutput=$$OBJECTS_DIR/$${TARGET}.def --unfrozen --linkas=$${TARGET}\\{$${hexVersion}\\}\\[$${intUid3}\\].dll --compressionmethod bytepair $$elf2e32_LIBPATH --unpaged
+ QMAKE_DISTCLEAN += $${DESTDIR}/$${TARGET}.sym
+ QMAKE_DISTCLEAN += $${DESTDIR}/$${TARGET}.dso
+ QMAKE_CLEAN += $${OBJECTS_DIR}/$${TARGET}.def
+
+ QMAKE_LIBS += -ledllstub.lib -ledll.lib\\(uc_dll_.o\\)
+
+ QMAKE_LFLAGS += --symver_soname --soname $${TARGET}\\{$${hexVersion}\\}\\[$${intUid3}\\].dll
+}
+
+contains(TEMPLATE, app) {
+ !isEmpty($$QMAKE_POST_LINK):QMAKE_POST_LINK += &&
+
+ QMAKE_POST_LINK += $$QMAKE_MOVE $$DESTDIR/$${TARGET} $$DESTDIR/$${TARGET}.sym
+ QMAKE_POST_LINK += && elf2e32 --version $$decVersion --sid=$$TARGET.SID --uid1=0x1000007a --uid2=$$TARGET.UID2 --uid3=$$TARGET.UID3 --dlldata --heap=0x00020000,0x00800000 --stack=0x00014000 --capability=None --fpu=softvfp --targettype=EXE --elfinput=$${DESTDIR}/$${TARGET}.sym --output=$${DESTDIR}/$${TARGET}.exe --unfrozen --linkas=$${TARGET}\\{$${hexVersion}\\}\\[$${intUid3}\\].exe --compressionmethod bytepair $$elf2e32_LIBPATH --unpaged
+ QMAKE_DISTCLEAN += $${DESTDIR}/$${TARGET}.exe
+
+ QMAKE_LIBS += -leexe.lib\\(uc_exe_.o\\)
+
+ QMAKE_LFLAGS += --symver_soname --soname $${TARGET}\\{$${hexVersion}\\}\\[$${intUid3}\\].exe
+}
+
+# Symbian resource files
+
+linux-armcc:symbian_resources_INCLUDES = -I$$(RVCT22INC)
+symbian_resources_INCLUDES = $$replace(symbian_resources_INCLUDES, ",", " -I")
+symbian_resources_INCLUDES += $$join(INCLUDEPATH, " -I", "-I")
+symbian_resources_DEFINES = $$join(DEFINES, " -D", "-D")
+symbian_resources_RCC_DIR = $$replace(RCC_DIR, "/$", "")
+symbian_resources_INCLUDES += "-I $$symbian_resources_RCC_DIR"
+
+for(symbian_resource, SYMBIAN_RESOURCES) {
+ symbian_resource = $$basename(symbian_resource)
+ symbian_resource_clean = $$replace(symbian_resource, "\.rss$", ".rsc")
+ QMAKE_CLEAN += $${symbian_resources_RCC_DIR}/$${symbian_resource_clean}
+ symbian_resource_clean = $$replace(symbian_resource, "\.rss$", ".rpp")
+ QMAKE_CLEAN += $${symbian_resources_RCC_DIR}/$${symbian_resource_clean}
+}
+
+symbianresources.input = SYMBIAN_RESOURCES
+symbianresources.output = $$symbian_resources_RCC_DIR/${QMAKE_FILE_BASE}.rsg
+symbianresources.commands = cpp -nostdinc -undef \
+ $$symbian_resources_INCLUDES \
+ $$symbian_resources_DEFINES \
+ ${QMAKE_FILE_NAME} \
+ -o $${symbian_resources_RCC_DIR}/${QMAKE_FILE_BASE}.rpp \
+ && rcomp -u -m045,046,047 \
+ -s$${symbian_resources_RCC_DIR}/${QMAKE_FILE_BASE}.rpp \
+ -o$${symbian_resources_RCC_DIR}/${QMAKE_FILE_BASE}.rsc \
+ -h$${symbian_resources_RCC_DIR}/${QMAKE_FILE_BASE}.rsg \
+ -i${QMAKE_FILE_NAME}
+symbianresources.dependency_type = TYPE_C
+symbianresources.CONFIG = no_link
+
+QMAKE_EXTRA_COMPILERS += symbianresources