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.prf73
1 files changed, 70 insertions, 3 deletions
diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
index 5baf7ce2b4..b16c84864f 100644
--- a/mkspecs/features/qt_functions.prf
+++ b/mkspecs/features/qt_functions.prf
@@ -92,12 +92,79 @@ defineTest(qtAddLibrary) {
return(true)
}
+defineTest(qtAddModule) {
+ MODULE_NAME = $$eval(QT.$${1}.name)
+ MODULE_INCLUDES = $$eval(QT.$${1}.includes)
+ MODULE_LIBS = $$eval(QT.$${1}.libs)
+
+ CONFIG += $$eval(QT.$${1}.CONFIG)
+ DEFINES += $$eval(QT.$${1}.DEFINES)
+
+ INCLUDEPATH -= $$MODULE_INCLUDES
+ INCLUDEPATH = $$MODULE_INCLUDES $$INCLUDEPATH
+
+ unset(LINKAGE)
+ mac {
+ CONFIG(qt_framework, qt_framework|qt_no_framework) { #forced
+ QMAKE_FRAMEWORKPATH *= $${MODULE_LIBS}
+ FRAMEWORK_INCLUDE = $$MODULE_INCLUDES.framework/Headers
+ !qt_no_framework_direct_includes:exists($$FRAMEWORK_INCLUDE) {
+ INCLUDEPATH -= $$FRAMEWORK_INCLUDE
+ INCLUDEPATH = $$FRAMEWORK_INCLUDE $$INCLUDEPATH
+ }
+ LINKAGE = -framework $${MODULE_NAME}$${QT_LIBINFIX}
+ } else:!qt_no_framework { #detection
+ for(frmwrk_dir, $$list($$MODULE_LIBS $$QMAKE_LIBDIR $$(DYLD_FRAMEWORK_PATH) /Library/Frameworks)) {
+ exists($${frmwrk_dir}/$${MODULE_NAME}.framework) {
+ QMAKE_FRAMEWORKPATH *= $${frmwrk_dir}
+ FRAMEWORK_INCLUDE = $$frmwrk_dir/$${MODULE_NAME}.framework/Headers
+ !qt_no_framework_direct_includes:exists($$FRAMEWORK_INCLUDE) {
+ INCLUDEPATH -= $$FRAMEWORK_INCLUDE
+ INCLUDEPATH = $$FRAMEWORK_INCLUDE $$INCLUDEPATH
+ }
+ LINKAGE = -framework $${MODULE_NAME}
+ break()
+ }
+ }
+ }
+ }
+ isEmpty(LINKAGE) {
+ # Make sure we can link to uninstalled libraries
+ !isEqual(MODULE_LIBS, $[QT_INSTALL_LIBS]) {
+ QMAKE_LIBDIR *= $$MODULE_LIBS
+ unix:QMAKE_LFLAGS *= "-Wl,-rpath-link,$$MODULE_LIBS"
+ }
+ if(!debug_and_release|build_pass):CONFIG(debug, debug|release) {
+ win32:LINKAGE = -l$${MODULE_NAME}$${QT_LIBINFIX}d
+ mac:LINKAGE = -l$${MODULE_NAME}$${QT_LIBINFIX}_debug
+ }
+ isEmpty(LINKAGE):LINKAGE = -l$${MODULE_NAME}$${QT_LIBINFIX}
+ }
+ !isEmpty(QMAKE_LSB) {
+ QMAKE_LFLAGS *= --lsb-libpath=$$$$QMAKE_LIBDIR_QT
+ QMAKE_LFLAGS *= -L/opt/lsb/lib
+ QMAKE_LFLAGS *= --lsb-shared-libs=$${MODULE_NAME}$${QT_LIBINFIX}
+ }
+ LIBS += $$LINKAGE
+ export(CONFIG)
+ export(DEFINES)
+ export(LIBS)
+ export(INCLUDEPATH)
+ export(QMAKE_FRAMEWORKPATH)
+ export(QMAKE_LFLAGS)
+ export(QMAKE_LIBDIR)
+ return(true)
+}
+
# variable, default
defineTest(qtPrepareTool) {
- isEmpty($$1) {
- !isEmpty(QT_BUILD_TREE):$$1 = $$QT_BUILD_TREE/bin/$$2
- else:$$1 = $$[QT_INSTALL_BINS]/$$2
+ MODBASE = $$[QT_INSTALL_BINS]
+ !isEmpty(QT_BUILD_TREE):MODBASE = $$QT_BUILD_TREE/bin
+ count(ARGS, 2, greaterThan) {
+ isEmpty(QT.$${3}.bins):warning("No QT.$${3}.bins, module path ignored for qtPrepareTool($$1, $$2, $$3)")
+ else:MODBASE = $$eval(QT.$${3}.bins)
}
+ isEmpty($$1):$$1 = $$MODBASE/$$2
$$1 ~= s,[/\\\\],$$QMAKE_DIR_SEP,
contains(QMAKE_HOST.os, Windows):!contains($$1, .*\\.(exe|bat)$) {
exists($$eval($$1).bat) {