38be0d1383
This is the beginning of revision history for this module. If you want to look at revision history older than this, please refer to the Qt Git wiki for how to use Git history grafting. At the time of writing, this wiki is located here: http://qt.gitorious.org/qt/pages/GitIntroductionWithQt If you have already performed the grafting and you don't see any history beyond this commit, try running "git log" with the "--follow" argument. Branched from the monolithic repo, Qt master branch, at commit 896db169ea224deb96c59ce8af800d019de63f12
298 lines
12 KiB
Plaintext
298 lines
12 KiB
Plaintext
#
|
|
# qmake configuration for all symbian mkspecs
|
|
#
|
|
|
|
TEMPLATE = app
|
|
CONFIG += prepend_includepath qt warn_on release incremental link_prl sis_targets run_on_phone
|
|
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_EXTENSION_SHLIB = dll
|
|
QMAKE_EXTENSION_PLUGIN = dll
|
|
QMAKE_EXTENSION_STATICLIB = lib
|
|
|
|
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
|
|
|
|
MMP_OPTION_KEYWORDS = CW ARMCC GCCE
|
|
VERSION_FLAGS.ARMCC = ARMCC_4
|
|
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
|
|
# Symbian build system applies -cwd source on the MWCC command line.
|
|
# this causes problems with include paths, -cwd include uses the same
|
|
# rules for include paths as ARMCC
|
|
# This should really be fixed in raptor, as using CXXFLAGS means we pass
|
|
# both on the command line and rely on the compiler using the last specified
|
|
QMAKE_CXXFLAGS.CW = -cwd include
|
|
QMAKE_CXXFLAGS.ARMCC = --visibility_inlines_hidden
|
|
QMAKE_CXXFLAGS.ARMCC_4 = --import_all_vtbl
|
|
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_LFLAGS =
|
|
QMAKE_LFLAGS.ARMCC =
|
|
QMAKE_LFLAGS.GCCE =
|
|
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 -lefsrv -lhal -lbafl -lapparc
|
|
QMAKE_LIBS_CFBSBITMAP = -lfbscli -lbitgdi -lgdi
|
|
QMAKE_LIBS_GUI = $$QMAKE_LIBS_CORE $$QMAKE_LIBS_CFBSBITMAP -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -lcentralrepository
|
|
QMAKE_LIBS_NETWORK =
|
|
QMAKE_LIBS_EGL = -llibEGL
|
|
QMAKE_LIBS_OPENGL = -llibGLESv2
|
|
QMAKE_LIBS_OPENGL_ES1 = -llibGLESv1_CM
|
|
QMAKE_LIBS_OPENGL_ES2 = -llibGLESv2
|
|
QMAKE_LIBS_OPENGL_QT = $$QMAKE_LIBS_OPENGL $$QMAKE_LIBS_CFBSBITMAP -lcone -lws32
|
|
QMAKE_LIBS_OPENGL_ES1_QT = $$QMAKE_LIBS_OPENGL_ES1 $$QMAKE_LIBS_CFBSBITMAP -lcone -lws32
|
|
QMAKE_LIBS_OPENGL_ES2_QT = $$QMAKE_LIBS_OPENGL_ES2 $$QMAKE_LIBS_CFBSBITMAP -lcone -lws32
|
|
QMAKE_LIBS_OPENVG = $$QMAKE_LIBS_CFBSBITMAP -llibOpenVG
|
|
QMAKE_LIBS_THREAD = -llibpthread
|
|
QMAKE_LIBS_COMPAT =
|
|
QMAKE_LIBS_S60 = -lavkon -leikcoctl -lgfxtrans
|
|
|
|
exists($${EPOCROOT}epoc32/include/platform/sgresource/sgimage.h) {
|
|
QMAKE_LIBS_OPENVG += -lsgresource
|
|
}
|
|
|
|
contains(QMAKE_HOST.os,Windows) {
|
|
QMAKE_COPY = copy /y
|
|
QMAKE_COPY_DIR = xcopy /s /q /y /i
|
|
QMAKE_MOVE = move
|
|
QMAKE_DEL_FILE = del /q 2> NUL
|
|
QMAKE_MKDIR = mkdir
|
|
QMAKE_DEL_DIR = rmdir
|
|
QMAKE_DEL_TREE = rmdir /s /q
|
|
QMAKE_CHK_DIR_EXISTS = if not exist
|
|
|
|
QMAKE_MOC = $$[QT_INSTALL_BINS]\\moc.exe
|
|
QMAKE_UIC = $$[QT_INSTALL_BINS]\\uic.exe
|
|
QMAKE_IDC = $$[QT_INSTALL_BINS]\\idc.exe
|
|
} else {
|
|
QMAKE_COPY = cp
|
|
QMAKE_COPY_DIR = cp -r
|
|
QMAKE_MOVE = mv
|
|
QMAKE_DEL_FILE = rm -f
|
|
QMAKE_MKDIR = mkdir -p
|
|
QMAKE_DEL_DIR = rmdir
|
|
QMAKE_DEL_TREE = rm -rf
|
|
QMAKE_CHK_DIR_EXISTS = test -d
|
|
|
|
QMAKE_MOC = $$[QT_INSTALL_BINS]/moc
|
|
QMAKE_UIC = $$[QT_INSTALL_BINS]/uic
|
|
QMAKE_IDC = $$[QT_INSTALL_BINS]/idc
|
|
}
|
|
|
|
QMAKE_IDL = midl
|
|
QMAKE_ZIP = zip -r -9
|
|
QMAKE_UNZIP = unzip -o
|
|
|
|
QMAKE_WRITE_DEFAULT_RC = 1
|
|
|
|
QMAKE_TAR = tar -cf
|
|
QMAKE_GZIP = gzip -9f
|
|
|
|
QT_ARCH = symbian
|
|
|
|
load(qt_config)
|
|
|
|
QMAKE_LIBS_QT_ENTRY = -lqtmain$${QT_LIBINFIX}.lib
|
|
QMAKE_LIBS_NO_QT_ENTRY = -llibcrt0.lib
|
|
QMAKE_LIBS_NO_QT_ENTRY_GCCE = -llibcrt0_gcce.lib
|
|
|
|
# List of languages that have a Symbian language code mapping provided in localize_deployment.prf
|
|
SYMBIAN_SUPPORTED_LANGUAGES = \
|
|
af sq am ar hy bn bg my be ca \
|
|
hr cs da nl en et fi fr gd ka \
|
|
de el gu he hi hu is id ga it \
|
|
ja kn kk ko lo lv lt mk ms ml \
|
|
mr mo mn nb pl pt pa ro ru sr \
|
|
si sk sl so es sw sv tl ta te \
|
|
th bo ti tr tk uk ur vi cy zu \
|
|
nn eu zh gl fa st en_US fr_BE \
|
|
pt_BR en_CA fr_CA el_CY tr_CY \
|
|
en_TW en_HK en_CN en_JP en_TH \
|
|
sv_FI zh_HK es_419 en_ZA fr_CH \
|
|
de_CH it_CH zh_TW
|
|
|
|
# These directories must match what configure uses for QT_INSTALL_PLUGINS and QT_INSTALL_IMPORTS
|
|
QT_PLUGINS_BASE_DIR = /resource/qt$${QT_LIBINFIX}/plugins
|
|
QT_IMPORTS_BASE_DIR = /resource/qt$${QT_LIBINFIX}/imports
|
|
|
|
load(symbian/platform_paths)
|
|
|
|
# If environment.prf is provided by platform, load that.
|
|
# It is used for platform specific variable settings, such as SYMBIAN_VERSION.
|
|
exists($${EPOCROOT}epoc32/tools/qt/mkspecs/features/environment.prf) {
|
|
load($${EPOCROOT}epoc32/tools/qt/mkspecs/features/environment.prf)
|
|
}
|
|
|
|
# Try to detect SDK version if it wasn't set by environment.prf
|
|
isEmpty(SYMBIAN_VERSION)|isEmpty(S60_VERSION) {
|
|
exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.4.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.4.sis) {
|
|
isEmpty(SYMBIAN_VERSION): SYMBIAN_VERSION = 5.4
|
|
isEmpty(S60_VERSION): S60_VERSION = 5.4
|
|
} else {
|
|
exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.3.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.3.sis) {
|
|
isEmpty(SYMBIAN_VERSION): SYMBIAN_VERSION = 5.3
|
|
isEmpty(S60_VERSION): S60_VERSION = 5.3
|
|
} else {
|
|
# The Symbian^3 PDK does not necessarily contain the required sis files.
|
|
# However, libstdcppv5 first appeared in Symbian^3 (S60 5.2), so check for that too.
|
|
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) {
|
|
isEmpty(SYMBIAN_VERSION): SYMBIAN_VERSION = Symbian3
|
|
isEmpty(S60_VERSION): S60_VERSION = 5.2
|
|
} else {
|
|
exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.1.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.1.sis) {
|
|
isEmpty(SYMBIAN_VERSION): SYMBIAN_VERSION = Symbian2
|
|
isEmpty(S60_VERSION): S60_VERSION = 5.1
|
|
} else {
|
|
exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v5.0.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.0.sis) {
|
|
isEmpty(SYMBIAN_VERSION): SYMBIAN_VERSION = 9.4
|
|
isEmpty(S60_VERSION): 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) {
|
|
isEmpty(SYMBIAN_VERSION): SYMBIAN_VERSION = 9.3
|
|
isEmpty(S60_VERSION): S60_VERSION = 3.2
|
|
} else {
|
|
exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/series60v3.1.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v3.1.sis) {
|
|
isEmpty(SYMBIAN_VERSION): SYMBIAN_VERSION = 9.2
|
|
isEmpty(S60_VERSION): S60_VERSION = 3.1
|
|
} else {
|
|
isEmpty(SYMBIAN_VERSION): SYMBIAN_VERSION = Unknown
|
|
isEmpty(S60_VERSION): S60_VERSION = Unknown
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# pkg_depends_webkit, pkg_depends_core, and pkg_platform_dependencies can be removed by developer
|
|
# if multiple languages need to be supported by pkg file. In that case the developer should declare
|
|
# multiple language compatible dependency statements him/herself.
|
|
|
|
default_deployment.pkg_prerules += pkg_depends_webkit pkg_depends_qt pkg_platform_dependencies
|
|
DEPLOYMENT += default_deployment default_bin_deployment default_resource_deployment default_reg_deployment
|
|
|
|
defineReplace(symbianRemoveSpecialCharacters) {
|
|
# Produce identical string to what SymbianCommonGenerator::removeSpecialCharacters
|
|
|
|
fixedStr = $$1
|
|
|
|
fixedStr = $$replace(fixedStr, /,_)
|
|
fixedStr = $$replace(fixedStr, \\\\,_)
|
|
fixedStr = $$replace(fixedStr, " ",_)
|
|
fixedStr = $$replace(fixedStr, :,_)
|
|
|
|
return ($$fixedStr)
|
|
}
|
|
|
|
# Determines translations that are Symbian supported
|
|
defineTest(matchSymbianLanguages) {
|
|
# Qt language codes for which we need to parse .ts file
|
|
SYMBIAN_MATCHED_LANGUAGES =
|
|
# List of translation files for matched languages
|
|
SYMBIAN_MATCHED_TRANSLATIONS =
|
|
# List of Qt language codes for which we have no mapped Symbian code but we have a fallback code
|
|
# and therefore need to generate a mapping for in localize_deployment.prf.
|
|
# The fallback code means plain language code for languages that have both language and country codes.
|
|
# E.g. the fallback code for language "zh_CN" would be "zh".
|
|
SYMBIAN_UNMAPPED_LANGUAGES =
|
|
# List of handled Qt language codes to avoid duplicate Symbian language codes in case both
|
|
# unmapped language+country combination and its fallback code, or multiple unmapped language+country
|
|
# combinations that have same fallback code are included.
|
|
HANDLED_LANGUAGES =
|
|
|
|
# Cannot parse .ts file for language here, so detect it from filename.
|
|
# Allow two and three character language and country codes.
|
|
for(translation, TRANSLATIONS) {
|
|
language = $$replace(translation, "^(.*/)?[^/]+_(([^_]{2,3}_)?[^_]{2,3})\\.ts$", \\2)
|
|
!contains(HANDLED_LANGUAGES, $$language) {
|
|
HANDLED_LANGUAGES += $$language
|
|
# Make sure translation path is absolute or shadow builds will not work
|
|
!contains(translation, "(^/|^\\\\|^.:).*"): translation = $$_PRO_FILE_PWD_/$$translation
|
|
|
|
contains(SYMBIAN_SUPPORTED_LANGUAGES, $$language) {
|
|
SYMBIAN_MATCHED_LANGUAGES += $$language
|
|
SYMBIAN_MATCHED_TRANSLATIONS += $$translation
|
|
} else {
|
|
# No direct mapping for specified language found. Check if a fallback language code can be used.
|
|
strippedLanguage = $$replace(language, "_.*$",)
|
|
contains(SYMBIAN_SUPPORTED_LANGUAGES, $$strippedLanguage):!contains(HANDLED_LANGUAGES, $$strippedLanguage) {
|
|
HANDLED_LANGUAGES += $$strippedLanguage
|
|
SYMBIAN_UNMAPPED_LANGUAGES += $$language
|
|
SYMBIAN_MATCHED_LANGUAGES += $$language
|
|
SYMBIAN_MATCHED_TRANSLATIONS += $$translation
|
|
SYMBIAN_LANGUAGE_FALLBACK.$$language = $$strippedLanguage
|
|
export(SYMBIAN_LANGUAGE_FALLBACK.$$language)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
isEmpty(SYMBIAN_MATCHED_LANGUAGES): SYMBIAN_MATCHED_LANGUAGES = en
|
|
|
|
export(SYMBIAN_MATCHED_LANGUAGES)
|
|
export(SYMBIAN_MATCHED_TRANSLATIONS)
|
|
export(SYMBIAN_UNMAPPED_LANGUAGES)
|
|
}
|
|
|
|
# Symbian pkg files that define multiple languages require a language specific string to be
|
|
# defined for various items, even though the string often needs to be same for all languages.
|
|
# This replacement method will generate correct string for such cases based on TRANSLATIONS
|
|
# variable.
|
|
defineReplace(addLanguageDependentPkgItem) {
|
|
localize_deployment:!isEmpty(TRANSLATIONS):isEmpty(SYMBIAN_MATCHED_LANGUAGES) {
|
|
matchSymbianLanguages()
|
|
}
|
|
|
|
pkgItem = $$eval($$1)
|
|
pkgLanguageList =
|
|
|
|
for(dummyItem, SYMBIAN_MATCHED_LANGUAGES) {
|
|
pkgLanguageList += "\"$$pkgItem\""
|
|
}
|
|
|
|
isEmpty(pkgLanguageList): pkgLanguageList = "\"$$pkgItem\""
|
|
|
|
return($$join(pkgLanguageList,",",,))
|
|
}
|