source: trunk/mkspecs/common/symbian/symbian.conf@ 899

Last change on this file since 899 was 846, checked in by Dmitry A. Kuminov, 15 years ago

trunk: Merged in qt 4.7.2 sources from branches/vendor/nokia/qt.

  • Property svn:eol-style set to native
File size: 9.7 KB
Line 
1#
2# qmake configuration for all symbian mkspecs
3#
4
5TEMPLATE = app
6CONFIG += qt warn_on release incremental link_prl sis_targets run_on_phone
7QT += core gui
8QMAKE_INCREMENTAL_STYLE = sublib
9
10DEFINES += UNICODE QT_KEYPAD_NAVIGATION QT_SOFTKEYS_ENABLED QT_USE_MATH_H_FLOATS
11
12QMAKE_COMPILER_DEFINES += SYMBIAN
13
14QMAKE_EXT_OBJ = .o
15QMAKE_EXT_RES = _res.o
16
17QMAKE_LEX = flex
18QMAKE_LEXFLAGS =
19QMAKE_YACC = byacc
20QMAKE_YACCFLAGS = -d
21QMAKE_CFLAGS =
22QMAKE_CFLAGS_DEPS =
23QMAKE_CFLAGS_WARN_ON =
24QMAKE_CFLAGS_WARN_OFF =
25QMAKE_CFLAGS_RELEASE =
26QMAKE_CFLAGS_DEBUG =
27QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
28
29MMP_OPTION_KEYWORDS = CW ARMCC GCCE
30VERSION_FLAGS.ARMCC = ARMCC_4_0
31QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
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
37QMAKE_CXXFLAGS.CW = -cwd include
38QMAKE_CXXFLAGS.ARMCC = --visibility_inlines_hidden
39QMAKE_CXXFLAGS.ARMCC_4_0 = --import_all_vtbl
40QMAKE_CXXFLAGS.GCCE = -fvisibility-inlines-hidden
41QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
42QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
43QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
44QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
45QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
46QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
47QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
48QMAKE_CXXFLAGS_RTTI_ON =
49QMAKE_CXXFLAGS_RTTI_OFF =
50QMAKE_CXXFLAGS_EXCEPTIONS_ON =
51QMAKE_CXXFLAGS_EXCEPTIONS_OFF =
52
53QMAKE_INCDIR =
54QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS]
55
56QMAKE_LFLAGS =
57QMAKE_LFLAGS.ARMCC =
58QMAKE_LFLAGS_EXCEPTIONS_ON =
59QMAKE_LFLAGS_EXCEPTIONS_OFF =
60QMAKE_LFLAGS_RELEASE =
61QMAKE_LFLAGS_DEBUG =
62QMAKE_LFLAGS_CONSOLE =
63QMAKE_LFLAGS_WINDOWS =
64QMAKE_LFLAGS_DLL =
65QMAKE_LINK_OBJECT_MAX =
66QMAKE_LINK_OBJECT_SCRIPT=
67
68QMAKE_LIBS = -llibc -llibm -leuser -llibdl
69QMAKE_LIBS_CORE = $$QMAKE_LIBS -lefsrv -lhal -lbafl
70QMAKE_LIBS_GUI = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -lapparc -lcentralrepository
71QMAKE_LIBS_NETWORK =
72QMAKE_LIBS_EGL = -llibEGL
73QMAKE_LIBS_OPENGL = -llibGLESv2
74QMAKE_LIBS_OPENGL_ES1 = -llibGLESv1_CM
75QMAKE_LIBS_OPENGL_ES2 = -llibGLESv2
76QMAKE_LIBS_OPENGL_QT = -llibGLESv2 -lcone -lws32
77QMAKE_LIBS_OPENGL_ES1_QT = -llibGLESv1_CM -lcone -lws32
78QMAKE_LIBS_OPENGL_ES2_QT = -llibGLESv2 -lcone -lws32
79QMAKE_LIBS_OPENVG = -llibOpenVG -lfbscli -lbitgdi -lgdi
80QMAKE_LIBS_THREAD = -llibpthread
81QMAKE_LIBS_COMPAT =
82QMAKE_LIBS_S60 = -lavkon -leikcoctl
83
84exists($${EPOCROOT}epoc32/include/platform/sgresource/sgimage.h) {
85 QMAKE_LIBS_OPENVG += -lsgresource
86}
87
88contains(QMAKE_HOST.os,Windows) {
89 QMAKE_COPY = copy /y
90 QMAKE_COPY_DIR = xcopy /s /q /y /i
91 QMAKE_MOVE = move
92 QMAKE_DEL_FILE = del 2> NUL
93 QMAKE_MKDIR = mkdir
94 QMAKE_DEL_DIR = rmdir
95 QMAKE_DEL_TREE = rmdir /s /q
96 QMAKE_CHK_DIR_EXISTS = if not exist
97
98 QMAKE_MOC = $$[QT_INSTALL_BINS]\\moc.exe
99 QMAKE_UIC = $$[QT_INSTALL_BINS]\\uic.exe
100 QMAKE_IDC = $$[QT_INSTALL_BINS]\\idc.exe
101} else {
102 QMAKE_COPY = cp
103 QMAKE_COPY_DIR = cp -r
104 QMAKE_MOVE = mv
105 QMAKE_DEL_FILE = rm -f
106 QMAKE_MKDIR = mkdir -p
107 QMAKE_DEL_DIR = rmdir
108 QMAKE_DEL_TREE = rm -rf
109 QMAKE_CHK_DIR_EXISTS = test -d
110
111 QMAKE_MOC = $$[QT_INSTALL_BINS]/moc
112 QMAKE_UIC = $$[QT_INSTALL_BINS]/uic
113 QMAKE_IDC = $$[QT_INSTALL_BINS]/idc
114}
115
116QMAKE_IDL = midl
117QMAKE_LIB = ar -ru
118QMAKE_RC = windres
119QMAKE_ZIP = zip -r -9
120QMAKE_UNZIP = unzip -o
121
122QMAKE_TAR = tar -cf
123QMAKE_GZIP = gzip -9f
124
125QT_ARCH = symbian
126
127load(qt_config)
128
129QMAKE_LIBS_QT_ENTRY = -lqtmain$${QT_LIBINFIX}.lib
130QMAKE_LIBS_NO_QT_ENTRY = -llibcrt0.lib
131QMAKE_LIBS_NO_QT_ENTRY_GCCE = -llibcrt0_gcce.lib
132
133# List of languages that have a Symbian language code mapping provided in localize_deployment.prf
134SYMBIAN_SUPPORTED_LANGUAGES = \
135 af sq am ar hy bn bg my be ca \
136 hr cs da nl en et fi fr gd ka \
137 de el gu he hi hu is id ga it \
138 ja kn kk ko lo lv lt mk ms ml \
139 mr mo mn nb pl pt pa ro ru sr \
140 si sk sl so es sw sv tl ta te \
141 th bo ti tr tk uk ur vi cy zu \
142 nn eu zh gl fa st en_US fr_BE \
143 pt_BR en_CA fr_CA el_CY tr_CY \
144 en_TW en_HK en_CN en_JP en_TH \
145 sv_FI zh_HK es_419 en_ZA fr_CH \
146 de_CH it_CH zh_TW
147
148# These directories must match what configure uses for QT_INSTALL_PLUGINS and QT_INSTALL_IMPORTS
149QT_PLUGINS_BASE_DIR = /resource/qt$${QT_LIBINFIX}/plugins
150QT_IMPORTS_BASE_DIR = /resource/qt$${QT_LIBINFIX}/imports
151
152load(symbian/platform_paths)
153
154# If environment.prf is provided by platform, load that.
155# It is used for platform specific variable settings, such as SYMBIAN_VERSION.
156exists($${EPOCROOT}epoc32/tools/qt/mkspecs/features/environment.prf) {
157 load($${EPOCROOT}epoc32/tools/qt/mkspecs/features/environment.prf)
158}
159
160# Try to detect SDK version if it wasn't set by environment.prf
161isEmpty(SYMBIAN_VERSION) {
162 exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/Symbianv4.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/Symbianv4.sis) {
163 SYMBIAN_VERSION = Symbian4
164 } else {
165 # The Symbian^3 PDK does not necessarily contain the required sis files.
166 # However, libstdcppv5 first appeared in Symbian^3 (S60 5.2), so check for that too.
167 exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.2.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.2.sis)|exists($${EPOCROOT}epoc32/release/armv5/lib/libstdcppv5.dso) {
168 SYMBIAN_VERSION = Symbian3
169 } else {
170 exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.1.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.1.sis) {
171 SYMBIAN_VERSION = Symbian2
172 } else {
173 exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.0.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.0.sis) {
174 SYMBIAN_VERSION = 9.4
175 } else {
176 exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v3.2.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v3.2.sis) {
177 SYMBIAN_VERSION = 9.3
178 } else {
179 exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v3.1.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v3.1.sis) {
180 SYMBIAN_VERSION = 9.2
181 } else {
182 SYMBIAN_VERSION = Unknown
183 }
184 }
185 }
186 }
187 }
188 }
189}
190
191isEmpty(S60_VERSION) {
192 contains(SYMBIAN_VERSION, "9\\.2") {
193 S60_VERSION = 3.1
194 } else:contains(SYMBIAN_VERSION, "9\\.3") {
195 S60_VERSION = 3.2
196 } else:contains(SYMBIAN_VERSION, "9\\.4") {
197 S60_VERSION = 5.0
198 } else:contains(SYMBIAN_VERSION, "Symbian2") {
199 S60_VERSION = 5.1
200 } else:contains(SYMBIAN_VERSION, "Symbian3") {
201 S60_VERSION = 5.2
202 } else {
203 S60_VERSION = Unknown
204 }
205}
206
207# pkg_depends_webkit, pkg_depends_core, and pkg_platform_dependencies can be removed by developer
208# if multiple languages need to be supported by pkg file. In that case the developer should declare
209# multiple language compatible dependency statements him/herself.
210
211default_deployment.pkg_prerules += pkg_depends_webkit pkg_depends_qt pkg_platform_dependencies
212DEPLOYMENT += default_deployment default_bin_deployment default_resource_deployment default_reg_deployment
213
214defineReplace(symbianRemoveSpecialCharacters) {
215 # Produce identical string to what SymbianCommonGenerator::removeSpecialCharacters
216
217 fixedStr = $$1
218
219 fixedStr = $$replace(fixedStr, /,_)
220 fixedStr = $$replace(fixedStr, \\\\,_)
221 fixedStr = $$replace(fixedStr, " ",_)
222 fixedStr = $$replace(fixedStr, :,_)
223
224 return ($$fixedStr)
225}
226
227# Determines translations that are Symbian supported
228defineTest(matchSymbianLanguages) {
229 SYMBIAN_MATCHED_LANGUAGES =
230 SYMBIAN_MATCHED_TRANSLATIONS =
231
232 # Cannot parse .ts file for language here, so detect it from filename.
233 # Allow two and three character language and country codes.
234 for(translation, TRANSLATIONS) {
235 language = $$replace(translation, "^(.*/)?[^/]+_(([^_]{2,3}_)?[^_]{2,3})\\.ts$", \\2)
236 contains(SYMBIAN_SUPPORTED_LANGUAGES, $$language) {
237 SYMBIAN_MATCHED_LANGUAGES += $$language
238 SYMBIAN_MATCHED_TRANSLATIONS += $$translation
239 }
240 }
241
242 isEmpty(SYMBIAN_MATCHED_LANGUAGES): SYMBIAN_MATCHED_LANGUAGES = en
243
244 export(SYMBIAN_MATCHED_LANGUAGES)
245 export(SYMBIAN_MATCHED_TRANSLATIONS)
246}
247
248# Symbian pkg files that define multiple languages require a language specific string to be
249# defined for various items, even though the string often needs to be same for all languages.
250# This replacement method will generate correct string for such cases based on TRANSLATIONS
251# variable.
252defineReplace(addLanguageDependentPkgItem) {
253 localize_deployment:!isEmpty(TRANSLATIONS):isEmpty(SYMBIAN_MATCHED_LANGUAGES) {
254 matchSymbianLanguages()
255 }
256
257 pkgItem = $$eval($$1)
258 pkgLanguageList =
259
260 for(dummyItem, SYMBIAN_MATCHED_LANGUAGES) {
261 pkgLanguageList += "\"$$pkgItem\""
262 }
263
264 isEmpty(pkgLanguageList): pkgLanguageList = "\"$$pkgItem\""
265
266 return($$join(pkgLanguageList,",",,))
267}
Note: See TracBrowser for help on using the repository browser.