summaryrefslogtreecommitdiffstats
path: root/mkspecs/symbian/linux-armcc/features/qt.prf
blob: 83c4f3060dae093b280899d3f8218e20bdf1d678 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
load(qt)

isEmpty(DESTDIR) {
    DESTDIR = .
}

for(libraries, LIBS) {
    isFullName = $$find(libraries, \.)
    isEmpty(isFullName) {
        newLIBS += "$${libraries}.dso"
    } else {
        newLIBS += "$${libraries}"
    }
}
LIBS = $$newLIBS
newLIBS =
for(libraries, QMAKE_LIBS) {
    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