qt5base-lts/mkspecs
Tor Arne Vestbø e2446afaa1 qmake: Resolve target suffix based on Qt build config for static plugins
The qtPlatformTargetSuffix() function is used in various places to
determine the suffix of targets based on the config, which for macOS
will result in a _debug suffix in debug mode.

This becomes tricky when one project built in debug mode tries to depend
on the libraries/plugins of another project (Qt) built in release, as
the qtPlatformTargetSuffix() function uses the current CONFIG as input,
which may be different than the QT_CONFIG (or CONFIG of whatever project
is being depended on).

For libraries this was fixed in 50e664835b
by iterating all known library paths, and trying the CONFIG suffix before
falling back to release version.

For plugins this was never solved, which becomes an issue when linking
to static plugins, either in a fully static build of Qt, or when some
of the plugins are static (permission plugins e.g.).

In this situation, the user project has to have the same configuration
as Qt was built with, to avoid errors like:

 error: no such file or directory: '~/6.x-static/qtbase/plugins/platforms/libqcocoa_debug.a'

To work around this, we assume that a plugin installed into the Qt
tree has the same build configuration as Qt itself, then then use
QT_CONFIG as the determining factor when linking to the plugin.

This still ties the build config of the plugin to the config of Qt,
but relaxes the relationship to the application, allowing it to be
built in either debug or release, which is an improvement to the
current state.

Pick-to: 6.5 6.5.0
Task-number: QTBUG-110356
Change-Id: Icee67fc01313a6c6f34178a6345ccae1b57429d7
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2023-03-04 16:54:56 +01:00
..
aix-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
aix-g++-64 Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
android-clang Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
common wasm: Fix qmake build 2022-12-09 12:21:54 +01:00
cygwin-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
darwin-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
devices Suppress warnings from Integrity builds 2023-01-09 10:34:33 +02:00
dummy move all target spec handling to qmake-based configure system 2016-12-13 18:56:34 +00:00
features qmake: Resolve target suffix based on Qt build config for static plugins 2023-03-04 16:54:56 +01:00
freebsd-clang Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
freebsd-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
haiku-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
hpuxi-g++-64 Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
hurd-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
integrity-armv7 Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
integrity-armv7-imx6 Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
integrity-armv8-rcar Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
integrity-x86 Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-aarch64-gnu-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-arm-gnueabi-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-clang Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-clang-32 Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-clang-libc++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-clang-libc++-32 Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-g++-32 Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-g++-64 Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-icc Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-icc-32 Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-icc-64 Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-icc-k1om Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-llvm Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
linux-lsb-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
lynxos-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
macx-clang Apple: Add CFBundleAllowMixedLocalizations=YES to Info.plist files 2022-10-25 10:06:59 +00:00
macx-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
macx-icc Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
macx-ios-clang Apple: Add CFBundleAllowMixedLocalizations=YES to Info.plist files 2022-10-25 10:06:59 +00:00
macx-xcode Apple: Add CFBundleAllowMixedLocalizations=YES to Info.plist files 2022-10-25 10:06:59 +00:00
modules Adjust wiki links to the new redirect 2015-03-04 15:36:12 +00:00
netbsd-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
openbsd-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qnx-aarch64le-qcc Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qnx-armle-v7-qcc Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qnx-x86-64-qcc Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
qnx-x86-qcc Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
solaris-cc Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
solaris-cc-64 Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
solaris-cc-64-stlport Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
solaris-cc-stlport Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
solaris-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
solaris-g++-64 Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
unsupported Apple: Add CFBundleAllowMixedLocalizations=YES to Info.plist files 2022-10-25 10:06:59 +00:00
wasm-emscripten wasm: add support for wasm64 build 2022-12-07 08:30:46 +10:00
wasm-emscripten-64 wasm: add support for wasm64 build 2022-12-07 08:30:46 +10:00
win32-arm64-msvc Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
win32-clang-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
win32-clang-msvc Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
win32-g++ Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
win32-icc Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
win32-icc-k1om Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
win32-msvc Use SPDX license identifiers 2022-05-16 16:37:38 +02:00