1 # |
1 # |
2 # qmake configuration for symbian-* |
2 # qmake configuration for all symbian mkspecs |
3 # |
3 # |
4 |
4 |
5 TEMPLATE = app |
5 TEMPLATE = app |
6 CONFIG += qt warn_on release incremental |
6 CONFIG += qt warn_on release incremental link_prl sis_targets |
7 QT += core gui |
7 QT += core gui |
8 QMAKE_INCREMENTAL_STYLE = sublib |
8 QMAKE_INCREMENTAL_STYLE = sublib |
9 |
9 |
10 DEFINES += UNICODE QT_KEYPAD_NAVIGATION QT_SOFTKEYS_ENABLED QT_USE_MATH_H_FLOATS |
10 DEFINES += UNICODE QT_KEYPAD_NAVIGATION QT_SOFTKEYS_ENABLED QT_USE_MATH_H_FLOATS |
|
11 |
11 QMAKE_COMPILER_DEFINES += SYMBIAN |
12 QMAKE_COMPILER_DEFINES += SYMBIAN |
12 |
13 |
13 QMAKE_EXT_OBJ = .o |
14 QMAKE_EXT_OBJ = .o |
14 QMAKE_EXT_RES = _res.o |
15 QMAKE_EXT_RES = _res.o |
15 |
16 |
16 QMAKE_CC = gcc |
|
17 QMAKE_LEX = flex |
17 QMAKE_LEX = flex |
18 QMAKE_LEXFLAGS = |
18 QMAKE_LEXFLAGS = |
19 QMAKE_YACC = byacc |
19 QMAKE_YACC = byacc |
20 QMAKE_YACCFLAGS = -d |
20 QMAKE_YACCFLAGS = -d |
21 QMAKE_CFLAGS = |
21 QMAKE_CFLAGS = |
26 QMAKE_CFLAGS_DEBUG = |
26 QMAKE_CFLAGS_DEBUG = |
27 QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses |
27 QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses |
28 |
28 |
29 MMP_OPTION_KEYWORDS = CW ARMCC GCCE |
29 MMP_OPTION_KEYWORDS = CW ARMCC GCCE |
30 VERSION_FLAGS.ARMCC = ARMCC_4_0 |
30 VERSION_FLAGS.ARMCC = ARMCC_4_0 |
31 QMAKE_CXX = g++ |
|
32 QMAKE_CXXFLAGS = $$QMAKE_CFLAGS |
31 QMAKE_CXXFLAGS = $$QMAKE_CFLAGS |
33 QMAKE_CXXFLAGS.CW = |
32 # Symbian build system applies -cwd source on the MWCC command line. |
|
33 # this causes problems with include paths, -cwd include uses the same |
|
34 # rules for include paths as ARMCC |
|
35 # This should really be fixed in raptor, as using CXXFLAGS means we pass |
|
36 # both on the command line and rely on the compiler using the last specified |
|
37 QMAKE_CXXFLAGS.CW = -cwd include |
34 QMAKE_CXXFLAGS.ARMCC = --visibility_inlines_hidden |
38 QMAKE_CXXFLAGS.ARMCC = --visibility_inlines_hidden |
35 QMAKE_CXXFLAGS.ARMCC_4_0 = --import_all_vtbl |
39 QMAKE_CXXFLAGS.ARMCC_4_0 = --import_all_vtbl |
36 QMAKE_CXXFLAGS.GCCE = -fvisibility-inlines-hidden |
40 QMAKE_CXXFLAGS.GCCE = -fvisibility-inlines-hidden |
37 QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS |
41 QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS |
38 QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON |
42 QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON |
47 QMAKE_CXXFLAGS_EXCEPTIONS_OFF = |
51 QMAKE_CXXFLAGS_EXCEPTIONS_OFF = |
48 |
52 |
49 QMAKE_INCDIR = |
53 QMAKE_INCDIR = |
50 QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS] |
54 QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS] |
51 |
55 |
52 QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -o $obj $src |
|
53 QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $< |
|
54 QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $obj $src |
|
55 QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $< |
|
56 |
|
57 QMAKE_LINK = |
|
58 QMAKE_LFLAGS = |
56 QMAKE_LFLAGS = |
59 QMAKE_LFLAGS.ARMCC = |
57 QMAKE_LFLAGS.ARMCC = |
60 QMAKE_LFLAGS_EXCEPTIONS_ON = |
58 QMAKE_LFLAGS_EXCEPTIONS_ON = |
61 QMAKE_LFLAGS_EXCEPTIONS_OFF = |
59 QMAKE_LFLAGS_EXCEPTIONS_OFF = |
62 QMAKE_LFLAGS_RELEASE = |
60 QMAKE_LFLAGS_RELEASE = |
65 QMAKE_LFLAGS_WINDOWS = |
63 QMAKE_LFLAGS_WINDOWS = |
66 QMAKE_LFLAGS_DLL = |
64 QMAKE_LFLAGS_DLL = |
67 QMAKE_LINK_OBJECT_MAX = |
65 QMAKE_LINK_OBJECT_MAX = |
68 QMAKE_LINK_OBJECT_SCRIPT= |
66 QMAKE_LINK_OBJECT_SCRIPT= |
69 |
67 |
70 QMAKE_LIBS = -llibc -llibm -leuser -llibdl -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc -lavkon -lefsrv -lcharconv -lws32 -lhal -lgdi -lapgrfx |
68 QMAKE_LIBS = -llibc -llibm -leuser -llibdl |
71 QMAKE_LIBS_CORE = $$QMAKE_LIBS -llibpthread -lefsrv |
69 QMAKE_LIBS_CORE = $$QMAKE_LIBS -lefsrv -lhal -lbafl |
72 QMAKE_LIBS_GUI = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lhal -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc -lcentralrepository |
70 QMAKE_LIBS_GUI = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc -lcentralrepository |
73 QMAKE_LIBS_NETWORK = |
71 QMAKE_LIBS_NETWORK = |
74 QMAKE_LIBS_EGL = -llibEGL |
72 QMAKE_LIBS_EGL = -llibEGL |
75 QMAKE_LIBS_OPENGL = |
73 QMAKE_LIBS_OPENGL = |
76 QMAKE_LIBS_OPENVG = -llibOpenVG -lfbscli -lbitgdi -lgdi |
74 QMAKE_LIBS_OPENVG = -llibOpenVG -lfbscli -lbitgdi -lgdi |
|
75 QMAKE_LIBS_THREAD = -llibpthread |
77 QMAKE_LIBS_COMPAT = |
76 QMAKE_LIBS_COMPAT = |
78 QMAKE_LIBS_QT_ENTRY = -llibcrt0.lib |
77 QMAKE_LIBS_QT_ENTRY = -llibcrt0.lib |
79 QMAKE_LIBS_S60 = -lavkon |
78 QMAKE_LIBS_S60 = -lavkon |
80 |
79 |
81 exists($${EPOCROOT}epoc32/include/platform/sgresource/sgimage.h) { |
80 exists($${EPOCROOT}epoc32/include/platform/sgresource/sgimage.h) { |
84 |
83 |
85 contains(QMAKE_HOST.os,Windows) { |
84 contains(QMAKE_HOST.os,Windows) { |
86 QMAKE_COPY = copy /y |
85 QMAKE_COPY = copy /y |
87 QMAKE_COPY_DIR = xcopy /s /q /y /i |
86 QMAKE_COPY_DIR = xcopy /s /q /y /i |
88 QMAKE_MOVE = move |
87 QMAKE_MOVE = move |
89 QMAKE_DEL_FILE = del |
88 QMAKE_DEL_FILE = del 2> NUL |
90 QMAKE_MKDIR = mkdir |
89 QMAKE_MKDIR = mkdir |
91 QMAKE_DEL_DIR = rmdir |
90 QMAKE_DEL_DIR = rmdir |
|
91 QMAKE_DEL_TREE = rmdir /s /q |
92 QMAKE_CHK_DIR_EXISTS = if not exist |
92 QMAKE_CHK_DIR_EXISTS = if not exist |
93 } else { |
93 } else { |
94 QMAKE_COPY = cp |
94 QMAKE_COPY = cp |
95 QMAKE_COPY_DIR = cp -r |
95 QMAKE_COPY_DIR = cp -r |
96 QMAKE_MOVE = mv |
96 QMAKE_MOVE = mv |
97 QMAKE_DEL_FILE = rm -f |
97 QMAKE_DEL_FILE = rm -f |
98 QMAKE_MKDIR = mkdir |
98 QMAKE_MKDIR = mkdir |
99 QMAKE_DEL_DIR = rmdir |
99 QMAKE_DEL_DIR = rmdir |
|
100 QMAKE_DEL_TREE = rm -rf |
100 QMAKE_CHK_DIR_EXISTS = test -d |
101 QMAKE_CHK_DIR_EXISTS = test -d |
101 } |
102 } |
102 |
103 |
103 QMAKE_MOC = /epoc32/tools/moc$$(DOTEXE) |
104 QMAKE_IDL = midl |
104 QMAKE_UIC = /epoc32/tools/uic$$(DOTEXE) |
105 QMAKE_LIB = ar -ru |
105 QMAKE_IDC = /epoc32/tools/idc$$(DOTEXE) |
106 QMAKE_RC = windres |
106 QMAKE_RCC = /epoc32/tools/rcc$$(DOTEXE) |
107 QMAKE_ZIP = zip -r -9 |
107 |
108 |
108 QMAKE_IDL = midl |
109 QMAKE_TAR = tar -cf |
109 QMAKE_LIB = /epoc32/gcc_mingw/bin/ar -ru |
110 QMAKE_GZIP = gzip -9f |
110 QMAKE_RC = /epoc32/gcc_mingw/bin/windres |
|
111 QMAKE_ZIP = zip -r -9 |
|
112 |
111 |
113 QMAKE_STRIP = $${EPOCROOT}epoc32/gcc_mingw/bin/strip |
112 QT_ARCH = symbian |
114 QMAKE_STRIPFLAGS_LIB += --strip-unneeded |
|
115 |
|
116 load(qt_config) |
113 load(qt_config) |
117 load(platform_paths) |
114 load(symbian/platform_paths) |
118 load(add_mmp_rules) |
|
119 |
|
120 symbian-abld { |
|
121 # Versions of abld prior to Symbian^3 have a bug where you cannot remove something from the command line without replacing it |
|
122 # Rather than figure out which version of abld we're using, we'll replace the command with a macro *that should never be used* |
|
123 MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA = "OPTION_REPLACE ARMCC --export_all_vtbl -D__QT_NOEFFECTMACRO_DONOTUSE" |
|
124 } else { |
|
125 MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA = "OPTION_REPLACE ARMCC --export_all_vtbl // don't use --export_all_vtbl" |
|
126 } |
|
127 MMP_RULES += PAGED BYTEPAIRCOMPRESSTARGET |
|
128 MMP_RULES += $$MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA |
|
129 SYMBIAN_PLATFORMS = WINSCW GCCE ARMV5 ARMV6 |
|
130 |
|
131 INCLUDEPATH = \ |
|
132 $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian/stl-off \ |
|
133 $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian \ |
|
134 $${EPOCROOT}epoc32/include \ |
|
135 $$OS_LAYER_LIBC_SYSTEMINCLUDE \ |
|
136 $$INCLUDEPATH |
|
137 |
|
138 # Ensure '.' directory is the first in include path. |
|
139 # RVCT seems to do this automatically, but WINSCW compiler does not, so add it here. |
|
140 MMP_RULES += "USERINCLUDE ." |
|
141 |
115 |
142 # pkg_depends_webkit, pkg_depends_core, and pkg_platform_dependencies can be removed by developer |
116 # pkg_depends_webkit, pkg_depends_core, and pkg_platform_dependencies can be removed by developer |
143 # if multiple languages need to be supported by pkg file. In that case the developer should declare |
117 # if multiple languages need to be supported by pkg file. In that case the developer should declare |
144 # multiple language compatible dependency statements him/herself. |
118 # multiple language compatible dependency statements him/herself. |
145 |
119 |
154 "[0x1028315F],0,0,0,{\"S60ProductID\"}" \ |
128 "[0x1028315F],0,0,0,{\"S60ProductID\"}" \ |
155 " " |
129 " " |
156 |
130 |
157 DEPLOYMENT += default_deployment |
131 DEPLOYMENT += default_deployment |
158 |
132 |
159 exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/Series60v5.0.sis )|exists($${EPOCROOT}epoc32/data/z/system/install/Series60v5.0.sis) { |
|
160 S60_VERSION = 5.0 |
|
161 } else { |
|
162 exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/Series60v3.2.sis )|exists($${EPOCROOT}epoc32/data/z/system/install/Series60v3.2.sis) { |
|
163 S60_VERSION = 3.2 |
|
164 } else { |
|
165 S60_VERSION = 3.1 |
|
166 MMP_RULES -= PAGED BYTEPAIRCOMPRESSTARGET |
|
167 } |
|
168 } |
|
169 |
|
170 QMAKE_CXXFLAGS_FAST_VFP.ARMCC = --fpmode fast |
|
171 # [TODO] QMAKE_CXXFLAGS_FAST_VFP.GCCE = |
|
172 |
|
173 symbian { |
|
174 armfpu = $$find(MMP_RULES, "ARMFPU") |
|
175 !isEmpty(armfpu) { |
|
176 vfpv2 = $$find(MMP_RULES, "vfpv2") |
|
177 !isEmpty(vfpv2) { |
|
178 # we will respect fpu setting obtained from configure, but, |
|
179 # if vfpv2 or softvfp+vfpv2 used we want to force RunFast VFP mode |
|
180 QMAKE_CXXFLAGS.ARMCC += $${QMAKE_CXXFLAGS_FAST_VFP.ARMCC} |
|
181 # [TODO] QMAKE_CXXFLAGS.GCCE += $${QMAKE_CXXFLAGS_FAST_VFP.GCCE} |
|
182 } |
|
183 } |
|
184 } |
|