Files correlati : cg0.exe cg0700a.msk cg0700b.msk cg3.exe cg4.exe Bug : Commento: Merge 1.0 libraries
322 lines
14 KiB
Plaintext
322 lines
14 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
|
|
|
|
exists($${EPOCROOT}epoc32/include/platform/mw/akntranseffect.h) {
|
|
QMAKE_LIBS_S60 += -lgfxtrans
|
|
}
|
|
|
|
exists($${EPOCROOT}epoc32/include/platform/sgresource/sgimage.h) {
|
|
QMAKE_LIBS_OPENVG += -lsgresource
|
|
QMAKE_LIBS_OPENGL_QT += -lsgresource
|
|
QMAKE_LIBS_OPENGL_ES1_QT += -lsgresource
|
|
QMAKE_LIBS_OPENGL_ES2_QT += -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 en_in
|
|
|
|
SYMBIAN_LANGUAGES_WITH_TWO_CODES = ms id
|
|
|
|
# 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.5.sis)|exists($${EPOCROOT}epoc32/data/z/system/install/series60v5.5.sis) {
|
|
isEmpty(SYMBIAN_VERSION): SYMBIAN_VERSION = 5.5
|
|
isEmpty(S60_VERSION): S60_VERSION = 5.5
|
|
} else {
|
|
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) {
|
|
low_translation = $$lower($$translation)
|
|
language = $$replace(low_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(matchedLanguage, SYMBIAN_MATCHED_LANGUAGES) {
|
|
pkgLanguageList += "\"$$pkgItem\""
|
|
# If the language has two mappings, add the item another time.
|
|
contains(SYMBIAN_LANGUAGES_WITH_TWO_CODES, $$matchedLanguage): pkgLanguageList += "\"$$pkgItem\""
|
|
}
|
|
|
|
isEmpty(pkgLanguageList): pkgLanguageList = "\"$$pkgItem\""
|
|
|
|
return($$join(pkgLanguageList,",",,))
|
|
}
|
|
|
|
# Sometimes a relative path to original .pro file directory is necessary when doing shadow builds.
|
|
defineReplace(relativeProPath) {
|
|
RELATIVE_PRO_FILE_PWD = $$replace(OUT_PWD, "^.:", "") # Lose drive letter if any
|
|
RELATIVE_PRO_FILE_PWD = $$replace(RELATIVE_PRO_FILE_PWD, "/[^/]*", "../")$$replace(_PRO_FILE_PWD_, "^[^/]*/", "")
|
|
return($$RELATIVE_PRO_FILE_PWD)
|
|
}
|