summaryrefslogtreecommitdiffstats
path: root/mkspecs/common/symbian/symbian.conf
blob: f1a67887b519936746ffc59f979f1bde01d52c2b (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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
#
# qmake configuration for symbian-*
#

TEMPLATE		= app
CONFIG			+= qt warn_on release incremental
QT			+= core gui
QMAKE_INCREMENTAL_STYLE = sublib

DEFINES			+= UNICODE QT_KEYPAD_NAVIGATION QT_SOFTKEYS_ENABLED QT_USE_MATH_H_FLOATS
QMAKE_COMPILER_DEFINES  += SYMBIAN

QMAKE_EXT_OBJ           = .o
QMAKE_EXT_RES           = _res.o

QMAKE_CC		= gcc
QMAKE_LEX		= flex
QMAKE_LEXFLAGS		=
QMAKE_YACC		= byacc
QMAKE_YACCFLAGS		= -d
QMAKE_CFLAGS		=
QMAKE_CFLAGS_DEPS	=
QMAKE_CFLAGS_WARN_ON	=
QMAKE_CFLAGS_WARN_OFF	=
QMAKE_CFLAGS_RELEASE	=
QMAKE_CFLAGS_DEBUG	=
QMAKE_CFLAGS_YACC	= -Wno-unused -Wno-parentheses

QMAKE_CXX		= g++
QMAKE_CXXFLAGS		= $$QMAKE_CFLAGS
QMAKE_CXXFLAGS.CW	= 
QMAKE_CXXFLAGS.ARMCC	= --visibility_inlines_hidden
QMAKE_CXXFLAGS.GCCE	= -fvisibility-inlines-hidden
QMAKE_CXXFLAGS_DEPS	= $$QMAKE_CFLAGS_DEPS
QMAKE_CXXFLAGS_WARN_ON	= $$QMAKE_CFLAGS_WARN_ON
QMAKE_CXXFLAGS_WARN_OFF	= $$QMAKE_CFLAGS_WARN_OFF
QMAKE_CXXFLAGS_RELEASE	= $$QMAKE_CFLAGS_RELEASE
QMAKE_CXXFLAGS_DEBUG	= $$QMAKE_CFLAGS_DEBUG
QMAKE_CXXFLAGS_YACC	= $$QMAKE_CFLAGS_YACC
QMAKE_CXXFLAGS_THREAD	= $$QMAKE_CFLAGS_THREAD
QMAKE_CXXFLAGS_RTTI_ON	=
QMAKE_CXXFLAGS_RTTI_OFF	=
QMAKE_CXXFLAGS_EXCEPTIONS_ON =
QMAKE_CXXFLAGS_EXCEPTIONS_OFF =

QMAKE_INCDIR		=
QMAKE_INCDIR_QT		= $$[QT_INSTALL_HEADERS]

QMAKE_RUN_CC		= $(CC) -c $(CFLAGS) $(INCPATH) -o $obj $src
QMAKE_RUN_CC_IMP	= $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
QMAKE_RUN_CXX		= $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $obj $src
QMAKE_RUN_CXX_IMP	= $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

QMAKE_LINK              =
QMAKE_LFLAGS            =
QMAKE_LFLAGS.ARMCC      = 
QMAKE_LFLAGS_EXCEPTIONS_ON =
QMAKE_LFLAGS_EXCEPTIONS_OFF =
QMAKE_LFLAGS_RELEASE    =
QMAKE_LFLAGS_DEBUG      =
QMAKE_LFLAGS_CONSOLE    =
QMAKE_LFLAGS_WINDOWS    =
QMAKE_LFLAGS_DLL        =
QMAKE_LINK_OBJECT_MAX   =
QMAKE_LINK_OBJECT_SCRIPT=

QMAKE_LIBS		= -llibc -llibm -leuser -llibdl
QMAKE_LIBS_CORE         = $$QMAKE_LIBS -llibpthread -lefsrv
QMAKE_LIBS_GUI          = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lhal -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc -lcentralrepository
QMAKE_LIBS_NETWORK      = 
QMAKE_LIBS_EGL          = -llibEGL
QMAKE_LIBS_OPENGL       = 
QMAKE_LIBS_OPENVG       = -llibOpenVG -lgraphicsresource -lfbscli -lbitgdi -lgdi
QMAKE_LIBS_COMPAT       = 
QMAKE_LIBS_QT_ENTRY     = -llibcrt0.lib
QMAKE_LIBS_S60          = -lavkon

!contains(QMAKE_HOST.os, "Windows")|!isEmpty(QMAKE_SH) {
    QMAKE_COPY           = cp
    QMAKE_COPY_DIR       = cp -r
    QMAKE_MOVE           = mv
    QMAKE_DEL_FILE       = rm -f
    QMAKE_MKDIR          = mkdir
    QMAKE_DEL_DIR        = rmdir
    QMAKE_CHK_DIR_EXISTS = test -d
} else {
    QMAKE_COPY           = copy /y
    QMAKE_COPY_DIR       = xcopy /s /q /y /i
    QMAKE_MOVE           = move
    QMAKE_DEL_FILE       = del 2> NUL
    QMAKE_MKDIR          = mkdir
    QMAKE_DEL_DIR        = rmdir
    QMAKE_CHK_DIR_EXISTS = if not exist
}

contains(QMAKE_HOST.os, "Windows") {
    QMAKE_MOC		= $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}moc.exe
    QMAKE_UIC		= $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}uic.exe
    QMAKE_IDC		= $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}idc.exe
} else {
    QMAKE_MOC		= $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}moc
    QMAKE_UIC		= $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}uic
    QMAKE_IDC		= $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}idc
}

QMAKE_IDL		= midl
QMAKE_LIB		= ar -ru
QMAKE_RC		= windres
QMAKE_ZIP		= zip -r -9

QMAKE_STRIP		= strip
QMAKE_STRIPFLAGS_LIB 	+= --strip-unneeded

load(qt_config)
load(symbian/platform_paths)

symbian-abld {
# Versions of abld prior to Symbian^3 have a bug where you cannot remove something from the command line without replacing it
# Rather than figure out which version of abld we're using, we'll replace the command with a macro *that should never be used*
    MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA = "OPTION_REPLACE ARMCC --export_all_vtbl -D__QT_NOEFFECTMACRO_DONOTUSE"
} else {
    MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA = "OPTION_REPLACE ARMCC --export_all_vtbl // don't use --export_all_vtbl"
}
MMP_RULES += PAGED
MMP_RULES += $$MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA
SYMBIAN_PLATFORMS = WINSCW GCCE ARMV5 ARMV6

# Legacy support requires some hardcoded stdapis paths. 
INCLUDEPATH = \
    $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian/stl-off \
    $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian \
    $${EPOCROOT}epoc32/include \
    $$OS_LAYER_LIBC_SYSTEMINCLUDE \
    $$INCLUDEPATH
    
# Supports S60 3.0, 3.1, 3.2 and 5.0 by default
default_deployment.pkg_prerules = \
    "; Default HW/platform dependencies" \
    "[0x101F7961],0,0,0,{\"S60ProductID\"}" \
    "[0x102032BE],0,0,0,{\"S60ProductID\"}" \
    "[0x102752AE],0,0,0,{\"S60ProductID\"}" \
    "[0x1028315F],0,0,0,{\"S60ProductID\"}" \
    " "

DEPLOYMENT += default_deployment

exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.0.sis )|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.0.sis) {
    S60_VERSION = 5.0
} else {
    exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v3.2.sis )|exists($${EPOCROOT}epoc32/data/z/system/install/series60v3.2.sis) {
        S60_VERSION = 3.2
    } else {
        S60_VERSION = 3.1
        MMP_RULES -= PAGED
    }
}

QMAKE_CXXFLAGS_FAST_VFP.ARMCC = --fpmode fast
# [TODO] QMAKE_CXXFLAGS_FAST_VFP.GCCE =

symbian {
    armfpu = $$find(MMP_RULES, "ARMFPU")
    !isEmpty(armfpu) {
        vfpv2 = $$find(MMP_RULES, "vfpv2")
        !isEmpty(vfpv2) {
            # we will respect fpu setting obtained from configure, but,
            # if vfpv2 or softvfp+vfpv2 used we want to force RunFast VFP mode
            QMAKE_CXXFLAGS.ARMCC += $${QMAKE_CXXFLAGS_FAST_VFP.ARMCC}
            # [TODO] QMAKE_CXXFLAGS.GCCE += $${QMAKE_CXXFLAGS_FAST_VFP.GCCE}
        }
    }
}