| 1 | #
|
|---|
| 2 | # qmake configuration for all symbian mkspecs
|
|---|
| 3 | #
|
|---|
| 4 |
|
|---|
| 5 | TEMPLATE = app
|
|---|
| 6 | CONFIG += qt warn_on release incremental link_prl sis_targets run_on_phone
|
|---|
| 7 | QT += core gui
|
|---|
| 8 | QMAKE_INCREMENTAL_STYLE = sublib
|
|---|
| 9 |
|
|---|
| 10 | DEFINES += UNICODE QT_KEYPAD_NAVIGATION QT_SOFTKEYS_ENABLED QT_USE_MATH_H_FLOATS
|
|---|
| 11 |
|
|---|
| 12 | QMAKE_COMPILER_DEFINES += SYMBIAN
|
|---|
| 13 |
|
|---|
| 14 | QMAKE_EXT_OBJ = .o
|
|---|
| 15 | QMAKE_EXT_RES = _res.o
|
|---|
| 16 |
|
|---|
| 17 | QMAKE_LEX = flex
|
|---|
| 18 | QMAKE_LEXFLAGS =
|
|---|
| 19 | QMAKE_YACC = byacc
|
|---|
| 20 | QMAKE_YACCFLAGS = -d
|
|---|
| 21 | QMAKE_CFLAGS =
|
|---|
| 22 | QMAKE_CFLAGS_DEPS =
|
|---|
| 23 | QMAKE_CFLAGS_WARN_ON =
|
|---|
| 24 | QMAKE_CFLAGS_WARN_OFF =
|
|---|
| 25 | QMAKE_CFLAGS_RELEASE =
|
|---|
| 26 | QMAKE_CFLAGS_DEBUG =
|
|---|
| 27 | QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
|
|---|
| 28 |
|
|---|
| 29 | MMP_OPTION_KEYWORDS = CW ARMCC GCCE
|
|---|
| 30 | VERSION_FLAGS.ARMCC = ARMCC_4_0
|
|---|
| 31 | QMAKE_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
|
|---|
| 37 | QMAKE_CXXFLAGS.CW = -cwd include
|
|---|
| 38 | QMAKE_CXXFLAGS.ARMCC = --visibility_inlines_hidden
|
|---|
| 39 | QMAKE_CXXFLAGS.ARMCC_4_0 = --import_all_vtbl
|
|---|
| 40 | QMAKE_CXXFLAGS.GCCE = -fvisibility-inlines-hidden
|
|---|
| 41 | QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
|
|---|
| 42 | QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
|
|---|
| 43 | QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
|
|---|
| 44 | QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
|
|---|
| 45 | QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
|
|---|
| 46 | QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
|
|---|
| 47 | QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
|
|---|
| 48 | QMAKE_CXXFLAGS_RTTI_ON =
|
|---|
| 49 | QMAKE_CXXFLAGS_RTTI_OFF =
|
|---|
| 50 | QMAKE_CXXFLAGS_EXCEPTIONS_ON =
|
|---|
| 51 | QMAKE_CXXFLAGS_EXCEPTIONS_OFF =
|
|---|
| 52 |
|
|---|
| 53 | QMAKE_INCDIR =
|
|---|
| 54 | QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS]
|
|---|
| 55 |
|
|---|
| 56 | QMAKE_LFLAGS =
|
|---|
| 57 | QMAKE_LFLAGS.ARMCC =
|
|---|
| 58 | QMAKE_LFLAGS_EXCEPTIONS_ON =
|
|---|
| 59 | QMAKE_LFLAGS_EXCEPTIONS_OFF =
|
|---|
| 60 | QMAKE_LFLAGS_RELEASE =
|
|---|
| 61 | QMAKE_LFLAGS_DEBUG =
|
|---|
| 62 | QMAKE_LFLAGS_CONSOLE =
|
|---|
| 63 | QMAKE_LFLAGS_WINDOWS =
|
|---|
| 64 | QMAKE_LFLAGS_DLL =
|
|---|
| 65 | QMAKE_LINK_OBJECT_MAX =
|
|---|
| 66 | QMAKE_LINK_OBJECT_SCRIPT=
|
|---|
| 67 |
|
|---|
| 68 | QMAKE_LIBS = -llibc -llibm -leuser -llibdl
|
|---|
| 69 | QMAKE_LIBS_CORE = $$QMAKE_LIBS -lefsrv -lhal -lbafl
|
|---|
| 70 | QMAKE_LIBS_GUI = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -lapparc -lcentralrepository
|
|---|
| 71 | QMAKE_LIBS_NETWORK =
|
|---|
| 72 | QMAKE_LIBS_EGL = -llibEGL
|
|---|
| 73 | QMAKE_LIBS_OPENGL = -llibGLESv2
|
|---|
| 74 | QMAKE_LIBS_OPENGL_ES1 = -llibGLESv1_CM
|
|---|
| 75 | QMAKE_LIBS_OPENGL_ES2 = -llibGLESv2
|
|---|
| 76 | QMAKE_LIBS_OPENGL_QT = -llibGLESv2 -lcone -lws32
|
|---|
| 77 | QMAKE_LIBS_OPENGL_ES1_QT = -llibGLESv1_CM -lcone -lws32
|
|---|
| 78 | QMAKE_LIBS_OPENGL_ES2_QT = -llibGLESv2 -lcone -lws32
|
|---|
| 79 | QMAKE_LIBS_OPENVG = -llibOpenVG -lfbscli -lbitgdi -lgdi
|
|---|
| 80 | QMAKE_LIBS_THREAD = -llibpthread
|
|---|
| 81 | QMAKE_LIBS_COMPAT =
|
|---|
| 82 | QMAKE_LIBS_S60 = -lavkon -leikcoctl
|
|---|
| 83 |
|
|---|
| 84 | exists($${EPOCROOT}epoc32/include/platform/sgresource/sgimage.h) {
|
|---|
| 85 | QMAKE_LIBS_OPENVG += -lsgresource
|
|---|
| 86 | }
|
|---|
| 87 |
|
|---|
| 88 | contains(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 |
|
|---|
| 116 | QMAKE_IDL = midl
|
|---|
| 117 | QMAKE_LIB = ar -ru
|
|---|
| 118 | QMAKE_RC = windres
|
|---|
| 119 | QMAKE_ZIP = zip -r -9
|
|---|
| 120 | QMAKE_UNZIP = unzip -o
|
|---|
| 121 |
|
|---|
| 122 | QMAKE_TAR = tar -cf
|
|---|
| 123 | QMAKE_GZIP = gzip -9f
|
|---|
| 124 |
|
|---|
| 125 | QT_ARCH = symbian
|
|---|
| 126 |
|
|---|
| 127 | load(qt_config)
|
|---|
| 128 |
|
|---|
| 129 | QMAKE_LIBS_QT_ENTRY = -lqtmain$${QT_LIBINFIX}.lib
|
|---|
| 130 | QMAKE_LIBS_NO_QT_ENTRY = -llibcrt0.lib
|
|---|
| 131 | QMAKE_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
|
|---|
| 134 | SYMBIAN_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
|
|---|
| 149 | QT_PLUGINS_BASE_DIR = /resource/qt$${QT_LIBINFIX}/plugins
|
|---|
| 150 | QT_IMPORTS_BASE_DIR = /resource/qt$${QT_LIBINFIX}/imports
|
|---|
| 151 |
|
|---|
| 152 | load(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.
|
|---|
| 156 | exists($${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
|
|---|
| 161 | isEmpty(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 |
|
|---|
| 191 | isEmpty(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 |
|
|---|
| 211 | default_deployment.pkg_prerules += pkg_depends_webkit pkg_depends_qt pkg_platform_dependencies
|
|---|
| 212 | DEPLOYMENT += default_deployment default_bin_deployment default_resource_deployment default_reg_deployment
|
|---|
| 213 |
|
|---|
| 214 | defineReplace(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
|
|---|
| 228 | defineTest(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.
|
|---|
| 252 | defineReplace(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 | }
|
|---|