From c4ecb81d6d64a190f7d24222d8cf35d953e73c1e Mon Sep 17 00:00:00 2001 From: Jake Petroules Date: Tue, 26 Jan 2016 08:59:24 -0800 Subject: [PATCH] Fix shared library framework builds of Qt with a platform suffix. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is necessary for combined device and simulator builds on Apple platforms (iOS, tvOS, watchOS) to link properly. Change-Id: I21e70806643b10f429945d3020995dc94fa5c612 Reviewed-by: Tor Arne Vestbø Reviewed-by: Oswald Buddenhagen --- mkspecs/features/qt.prf | 2 +- mkspecs/features/qt_functions.prf | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf index 4b40451c96..b53617ba2a 100644 --- a/mkspecs/features/qt.prf +++ b/mkspecs/features/qt.prf @@ -122,7 +122,7 @@ for(ever) { QMAKE_FRAMEWORKPATH *= $$MODULE_FRAMEWORKS !isEmpty(MODULE_MODULE) { contains(MODULE_CONFIG, lib_bundle) { - LIBS$$var_sfx += -framework $$MODULE_MODULE + LIBS$$var_sfx += -framework $${MODULE_MODULE}$$qtFrameworkPlatformTargetSuffix() } else { !isEmpty(MODULE_LIBS_ADD): \ LIBS$$var_sfx += -L$$MODULE_LIBS_ADD diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf index b2c2507807..88467e89ba 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf @@ -13,6 +13,16 @@ defineReplace(qtPlatformTargetSuffix) { return($$suffix) } +# suffix for the -framework linker flag when the exectuable's name +# differs from the bundle's, for example -framework QtCore,_debug +# links to QtCore.framework/QtCore_debug +defineReplace(qtFrameworkPlatformTargetSuffix) { + suffix = $$qtPlatformTargetSuffix() + !isEmpty(suffix): \ + suffix = ,$$suffix + return($$suffix) +} + defineReplace(qtLibraryTarget) { LIBRARY_NAME = $$1 CONFIG(shared, static|shared):contains(QT_CONFIG, qt_framework) {