summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/qt_functions.prf
diff options
context:
space:
mode:
Diffstat (limited to 'mkspecs/features/qt_functions.prf')
-rw-r--r--mkspecs/features/qt_functions.prf124
1 files changed, 124 insertions, 0 deletions
diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
new file mode 100644
index 0000000000..5baf7ce2b4
--- /dev/null
+++ b/mkspecs/features/qt_functions.prf
@@ -0,0 +1,124 @@
+defineReplace(qtLibraryTarget) {
+ unset(LIBRARY_NAME)
+ LIBRARY_NAME = $$1
+ mac:!static:contains(QT_CONFIG, qt_framework) {
+ QMAKE_FRAMEWORK_BUNDLE_NAME = $$LIBRARY_NAME
+ export(QMAKE_FRAMEWORK_BUNDLE_NAME)
+ }
+ contains(TEMPLATE, .*lib):CONFIG(debug, debug|release) {
+ !debug_and_release|build_pass {
+ mac:RET = $$member(LIBRARY_NAME, 0)_debug
+ else:win32:RET = $$member(LIBRARY_NAME, 0)d
+ }
+ }
+ isEmpty(RET):RET = $$LIBRARY_NAME
+ return($$RET)
+}
+
+defineTest(qtAddLibrary) {
+ INCLUDEPATH -= $$QMAKE_INCDIR_QT/$$1
+ INCLUDEPATH = $$QMAKE_INCDIR_QT/$$1 $$INCLUDEPATH
+
+ LIB_NAME = $$1
+ unset(LINKAGE)
+ mac {
+ CONFIG(qt_framework, qt_framework|qt_no_framework) { #forced
+ QMAKE_FRAMEWORKPATH *= $${QMAKE_LIBDIR_QT}
+ FRAMEWORK_INCLUDE = $$QMAKE_LIBDIR_QT/$${LIB_NAME}.framework/Headers
+ !qt_no_framework_direct_includes:exists($$FRAMEWORK_INCLUDE) {
+ INCLUDEPATH -= $$FRAMEWORK_INCLUDE
+ INCLUDEPATH = $$FRAMEWORK_INCLUDE $$INCLUDEPATH
+ }
+ LINKAGE = -framework $${LIB_NAME}$${QT_LIBINFIX}
+ } else:!qt_no_framework { #detection
+ for(frmwrk_dir, $$list($$QMAKE_LIBDIR_QT $$QMAKE_LIBDIR $$(DYLD_FRAMEWORK_PATH) /Library/Frameworks)) {
+ exists($${frmwrk_dir}/$${LIB_NAME}.framework) {
+ QMAKE_FRAMEWORKPATH *= $${frmwrk_dir}
+ FRAMEWORK_INCLUDE = $$frmwrk_dir/$${LIB_NAME}.framework/Headers
+ !qt_no_framework_direct_includes:exists($$FRAMEWORK_INCLUDE) {
+ INCLUDEPATH -= $$FRAMEWORK_INCLUDE
+ INCLUDEPATH = $$FRAMEWORK_INCLUDE $$INCLUDEPATH
+ }
+ LINKAGE = -framework $${LIB_NAME}
+ break()
+ }
+ }
+ }
+ }
+ symbian {
+ isEqual(LIB_NAME, QtCore) {
+ #workaround for dependency from f32file.h on e32svr.h which has moved location in symbian3
+ contains(SYMBIAN_VERSION, Symbian3) {
+ INCLUDEPATH *= $$OS_LAYER_SYSTEMINCLUDE
+ }
+ } else:isEqual(LIB_NAME, QtGui) {
+ # Needed for #include <QtGui> because qs60mainapplication.h includes aknapp.h
+ INCLUDEPATH *= $$MW_LAYER_SYSTEMINCLUDE
+ } else:isEqual(LIB_NAME, QtWebKit) {
+ # Needed for because relative inclusion problem in toolchain
+ INCLUDEPATH *= $$QMAKE_INCDIR_QT/QtXmlPatterns
+ INCLUDEPATH *= $$QMAKE_INCDIR_QT/QtNetwork
+ isEmpty(TARGET.CAPABILITY): TARGET.CAPABILITY = NetworkServices
+ isEmpty(TARGET.EPOCHEAPSIZE):TARGET.EPOCHEAPSIZE = 0x20000 0x2000000
+ } else:isEqual(LIB_NAME, QtXmlPatterns) {
+ # Needed for #include <QtXmlPatterns/QtXmlPatterns> because relative inclusion problem in toolchain
+ INCLUDEPATH *= $$QMAKE_INCDIR_QT/QtNetwork
+ } else:isEqual(LIB_NAME, QtNetwork) {
+ isEmpty(TARGET.CAPABILITY): TARGET.CAPABILITY = NetworkServices
+ } else:isEqual(LIB_NAME, QtDeclarative) {
+ isEmpty(TARGET.CAPABILITY): TARGET.CAPABILITY = NetworkServices
+ isEmpty(TARGET.EPOCHEAPSIZE):TARGET.EPOCHEAPSIZE = 0x20000 0x2000000
+ }
+ export(TARGET.EPOCHEAPSIZE)
+ export(TARGET.CAPABILITY)
+ }
+ isEmpty(LINKAGE) {
+ if(!debug_and_release|build_pass):CONFIG(debug, debug|release) {
+ win32:LINKAGE = -l$${LIB_NAME}$${QT_LIBINFIX}d
+ mac:LINKAGE = -l$${LIB_NAME}$${QT_LIBINFIX}_debug
+ }
+ isEmpty(LINKAGE):LINKAGE = -l$${LIB_NAME}$${QT_LIBINFIX}
+ }
+ !isEmpty(QMAKE_LSB) {
+ QMAKE_LFLAGS *= --lsb-libpath=$$$$QMAKE_LIBDIR_QT
+ QMAKE_LFLAGS *= -L/opt/lsb/lib
+ QMAKE_LFLAGS *= --lsb-shared-libs=$${LIB_NAME}$${QT_LIBINFIX}
+ }
+ LIBS += $$LINKAGE
+ export(LIBS)
+ export(INCLUDEPATH)
+ export(QMAKE_FRAMEWORKPATH)
+ export(QMAKE_LFLAGS)
+ return(true)
+}
+
+# variable, default
+defineTest(qtPrepareTool) {
+ isEmpty($$1) {
+ !isEmpty(QT_BUILD_TREE):$$1 = $$QT_BUILD_TREE/bin/$$2
+ else:$$1 = $$[QT_INSTALL_BINS]/$$2
+ }
+ $$1 ~= s,[/\\\\],$$QMAKE_DIR_SEP,
+ contains(QMAKE_HOST.os, Windows):!contains($$1, .*\\.(exe|bat)$) {
+ exists($$eval($$1).bat) {
+ $$1 = $$eval($$1).bat
+ } else {
+ $$1 = $$eval($$1).exe
+ }
+ }
+ export($$1)
+}
+
+defineTest(packagesExist) {
+ # this can't be done in global scope here because qt_functions is loaded
+ # before the .pro is parsed, so if the .pro set PKG_CONFIG, we wouldn't know it
+ # yet. oops.
+ isEmpty(PKG_CONFIG):PKG_CONFIG = pkg-config # keep consistent with link_pkgconfig.prf! too
+
+ for(package, ARGS) {
+ !system($$PKG_CONFIG --exists $$package):return(false)
+ }
+
+ return(true)
+}
+