diff options
Diffstat (limited to 'mkspecs/features/qt_functions.prf')
-rw-r--r-- | mkspecs/features/qt_functions.prf | 97 |
1 files changed, 24 insertions, 73 deletions
diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf index ee1647f481..dcd374b2ad 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf @@ -22,53 +22,17 @@ defineReplace(qtLibraryTarget) { } 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() - } - } - } - } - 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} + warning("qtAddLibrary() is deprecated. Use qtAddModule() or QT+= instead.") + + # Reverse-engineer the module name from the library name. + for(var, $$list($$find($$list($$enumerate_vars()), ^QT\\.[^.]+\\.name$))) { + isEqual($$var, $$1) { + var ~= s,^QT\\.([^.]+)\\.name$,\\1, + qtAddModule($$var):return(true):break() + return(false):break() # Yes, the break is insanity. But necessary. + } } - LIBS += $$LINKAGE - export(LIBS) - export(INCLUDEPATH) - export(QMAKE_FRAMEWORKPATH) - export(QMAKE_LFLAGS) - return(true) + error("No module matching library '$$1' found.") } defineTest(qtAddModule) { @@ -81,8 +45,12 @@ defineTest(qtAddModule) { CONFIG += $$eval(QT.$${1}.CONFIG) DEFINES += $$eval(QT.$${1}.DEFINES) - INCLUDEPATH -= $$MODULE_INCLUDES - INCLUDEPATH = $$MODULE_INCLUDES $$INCLUDEPATH + unix { + MODULE_INCLUDES -= /usr/include /usr/local/include + MODULE_LIBS -= /usr/lib /usr/local/lib + } + + INCLUDEPATH *= $$MODULE_INCLUDES isEqual(2, UsePrivate) { # Tests function parameter 2 ($$2) being equal to 'UsePrivate' # This adds both # <module privates include path>/ @@ -90,33 +58,17 @@ defineTest(qtAddModule) { # since we have code using both #include <QtCore/private/foo> and #include <private/foo> # Both need to be supported with the new private includes structure MODULE_INCLUDES_PRIVATES = $$eval(QT.$${1}.private_includes) - INCLUDEPATH -= $$MODULE_INCLUDES_PRIVATES $$MODULE_INCLUDES_PRIVATES/$$MODULE_NAME - INCLUDEPATH = $$MODULE_INCLUDES_PRIVATES $$MODULE_INCLUDES_PRIVATES/$$MODULE_NAME $$INCLUDEPATH + INCLUDEPATH += $$MODULE_INCLUDES_PRIVATES $$MODULE_INCLUDES_PRIVATES/$$MODULE_NAME } unset(LINKAGE) mac { !contains(MODULE_CONFIG,staticlib):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 - } + FRAMEWORK_INCLUDE = $${MODULE_LIBS}.framework/Headers + !qt_no_framework_direct_includes:exists($$FRAMEWORK_INCLUDE): \ + INCLUDEPATH *= $$FRAMEWORK_INCLUDE 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() - } - } } } @@ -131,10 +83,10 @@ defineTest(qtAddModule) { } isEmpty(LINKAGE) { - # Make sure we can link to uninstalled libraries !isEmpty(MODULE_LIBS) { - !isEqual(MODULE_LIBS, $$[QT_INSTALL_LIBS]) { ### XXX - QMAKE_LIBDIR *= $$MODULE_LIBS + QMAKE_LIBDIR *= $$MODULE_LIBS + !isEqual(MODULE_LIBS, $$[QT_INSTALL_LIBS]) { + # Make sure we can link to uninstalled libraries unix:!mac:QMAKE_LFLAGS *= "-Wl,-rpath-link,$$MODULE_LIBS" } } @@ -166,8 +118,7 @@ defineTest(qtAddModule) { # variable, default defineTest(qtPrepareTool) { - MODBASE = $$[QT_HOST_BINS] - !isEmpty(QT_BUILD_TREE):MODBASE = $$QT_BUILD_TREE/bin + MODBASE = $$[QT_HOST_BINS/get] 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) |