fix bootstrapped modules in framework builds, take 2

the borrowing of headers always happens from "proper" modules which are
actually built as frameworks if so requested. that means that even
though the borrowing module itself never is a framework, it needs a
framework path and include paths that point into frameworks.

amends 20c7ab44.

Change-Id: Ic582060dd179cc592e9be7792ff02cebdfabd772
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This commit is contained in:
Oswald Buddenhagen 2016-12-23 19:35:45 +01:00
parent 1b75a04336
commit 97be8253fb
3 changed files with 12 additions and 6 deletions

View File

@ -41,8 +41,12 @@ host_build {
}
}
CONFIG(shared, static|shared):qtConfig(framework): \
CONFIG += lib_bundle
qtConfig(framework) {
minimal_syncqt: \
CONFIG += module_frameworks
else: CONFIG(shared, static|shared): \
CONFIG += module_frameworks lib_bundle
}
CONFIG += relative_qt_rpath # Qt libraries should be relocatable

View File

@ -59,7 +59,9 @@ load(qt_build_paths)
# even beyond the module's own build. The implication of this is that
# qmake might never use a framework's headers in a non-prefix build,
# as there is no separate set of .pri files for users outside Qt.
prefix_build:lib_bundle: \
# Borrowing is assumed to happen from modules which, in a framework build,
# actually are frameworks.
prefix_build:module_frameworks: \
fwd = _FWD
# When using a split include path during the build, the installed module's
# include path is also structurally different from that in the build dir.
@ -82,7 +84,7 @@ for(mod, MODULE_INCNAME) {
generated_privates: \
MODULE$${sfwd}$${prv}_INCLUDES += $$mbibase/$$VERSION $$mbibase/$$VERSION/$$mod
}
prefix_build:lib_bundle {
prefix_build:module_frameworks {
mfbase = \$\$QT_MODULE_LIB_BASE/$${mod}.framework/Headers
MODULE_INCLUDES += $$mfbase
MODULE$${prv}_INCLUDES += $$mfbase/$$VERSION $$mfbase/$$VERSION/$$mod

View File

@ -83,10 +83,10 @@ defineReplace(qtExportLibsForModule) {
module_build_type = v2
static: \
module_build_type += staticlib
lib_bundle {
lib_bundle: \
module_build_type += lib_bundle
module_frameworks: \
MODULE_FRAMEWORKS = " \$\$QT_MODULE_LIB_BASE"
}
internal_module: \
module_build_type += internal_module
ltcg: \