From 311f8157ae1aa77a0fb0154e8207678a0d919703 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 10 May 2023 13:47:33 +0200 Subject: [PATCH] iOS: Don't add Qt libraries to PRE_TARGETDEPS of xcodebuild Makefile Support for PRE_TARGETDEPS was added for iOS applications in 53ac8094b13d52b7da8b029cf4716827241283c3, even if the Xcode generator doesn't support PRE_TARGETDEPS, by taking advantage of the glue Makefile we use to run xcodebuild. And we add our own Qt libraries to PRE_TARGETDEPS in qt.prf, as you would expect. But since Xcode supports both debug and release, we always set debug_and_release for this glue Makefile. The result is that when computing the Qt library PRE_TARGETDEPS, we fail to apply a _debug suffix from qtPlatformTargetSuffix(), since we've enabled debug_and_release. In a debug only build, this means that 'make' of the glue Makefile will fail to find the release versions of our Qt libraries. To work around this we skip adding Qt to the target deps when generating the xcodebuild Makefile, as we know these libraries are added to the target in the Xcode project. Pick-to: 6.5 6.2 Change-Id: Icafc103e34a6f83240fa8187181d885fb0172a86 Reviewed-by: Joerg Bornemann --- mkspecs/features/qt.prf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf index 7799a29fa82..d6a87b75994 100644 --- a/mkspecs/features/qt.prf +++ b/mkspecs/features/qt.prf @@ -252,15 +252,16 @@ for(ever) { } else { lib_bases = $$MODULE_MODULE$$qtPlatformTargetSuffix() darwin: lib_bases *= $$MODULE_MODULE + add_lib_to_pretargetdeps = false win32|contains(MODULE_CONFIG, staticlib) { lib_prefix = $$MODULE_LIBS/$$QMAKE_PREFIX_STATICLIB lib_suffixes = $$QMAKE_EXTENSION_STATICLIB lib_suffixes *= $$QMAKE_LIB_EXTENSIONS - add_lib_to_pretargetdeps = true + !xcodebuild: \ + add_lib_to_pretargetdeps = true } else { lib_prefix = $$MODULE_LIBS/$$QMAKE_PREFIX_SHLIB lib_suffixes = $$QMAKE_EXTENSION_SHLIB - add_lib_to_pretargetdeps = false } candidates = for(lib_base, lib_bases) {