Mac: fix linking with Qt frameworks which don't exist at qmake time
This restores the forced-vs-detection logic for Qt frameworks which
was removed by commit ceed409b40.
The problem of linking against Qt modules compiled as a static
library is solved a different way: the module must explicitly state
in the module .pri file that it is built as a static lib.
Change-Id: Ie3d726f7b3933e5b5d27f15c6112ec1c7dee1ea2
Reviewed-on: http://codereview.qt-project.org/5034
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
bb10
parent
fb59d866c2
commit
81a5885814
|
|
@ -96,6 +96,7 @@ defineTest(qtAddModule) {
|
|||
MODULE_NAME = $$eval(QT.$${1}.name)
|
||||
MODULE_INCLUDES = $$eval(QT.$${1}.includes)
|
||||
MODULE_LIBS = $$eval(QT.$${1}.libs)
|
||||
MODULE_CONFIG = $$eval(QT.$${1}.module_config)
|
||||
|
||||
CONFIG += $$eval(QT.$${1}.CONFIG)
|
||||
DEFINES += $$eval(QT.$${1}.DEFINES)
|
||||
|
|
@ -115,8 +116,17 @@ defineTest(qtAddModule) {
|
|||
|
||||
unset(LINKAGE)
|
||||
mac {
|
||||
for(frmwrk_dir, $$list($$MODULE_LIBS $$QMAKE_LIBDIR $$(DYLD_FRAMEWORK_PATH) /Library/Frameworks)) {
|
||||
exists($${frmwrk_dir}/$${MODULE_NAME}.framework) {
|
||||
!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
|
||||
}
|
||||
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) {
|
||||
|
|
@ -125,7 +135,8 @@ defineTest(qtAddModule) {
|
|||
}
|
||||
LINKAGE = -framework $${MODULE_NAME}
|
||||
break()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,4 +12,5 @@ QT.platformsupport.libs = $$QT_MODULE_LIB_BASE
|
|||
QT.platformsupport.plugins = $$QT_MODULE_PLUGIN_BASE
|
||||
QT.platformsupport.imports = $$QT_MODULE_IMPORT_BASE
|
||||
QT.platformsupport.depends = core gui
|
||||
QT.platformsupport.module_config = staticlib
|
||||
QT.platformsupport.DEFINES =
|
||||
|
|
|
|||
Loading…
Reference in New Issue