From 97be8253fbe9d9e4954b6d345e8fe64bd566a395 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 23 Dec 2016 19:35:45 +0100 Subject: [PATCH] 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 Reviewed-by: Joerg Bornemann --- mkspecs/features/qt_module.prf | 8 ++++++-- mkspecs/features/qt_module_headers.prf | 6 ++++-- mkspecs/features/qt_module_pris.prf | 4 ++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf index ec31e457db..d5286ff340 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf @@ -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 diff --git a/mkspecs/features/qt_module_headers.prf b/mkspecs/features/qt_module_headers.prf index 0e04b46448..190ce753ef 100644 --- a/mkspecs/features/qt_module_headers.prf +++ b/mkspecs/features/qt_module_headers.prf @@ -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 diff --git a/mkspecs/features/qt_module_pris.prf b/mkspecs/features/qt_module_pris.prf index bcaac230ec..ffcd31db3b 100644 --- a/mkspecs/features/qt_module_pris.prf +++ b/mkspecs/features/qt_module_pris.prf @@ -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: \