qt5base-lts/mkspecs
Alexandru Croitor 44602224bf CMake: Put the static dependencies into the relevant configuration
When adding the static dependencies for a module, they should be
added to the debug|release configuration as appropriate, otherwise
it ends up adding the debug version of the libraries to the release
configuration as well as the release version of the libraries.

Implementation wise, that means we have to use generator expressions
of the form $<$<CONFIG:Configuration>:${dependencies}>, because
INTERFACE_LINK_LIBRARIES does not have a
INTERFACE_LINK_LIBRARIES_<CONFIG> equivalent that can be set per
configuration.

Note that the condition part of the generator expression can not
explicitly check for Debug or for Release, because a user can
configure their application without specifying CMAKE_BUILD_TYPE,
which means that both Debug and Relase conditions would fail.
So the actual condition has to be isDebug or isNotDebug.

The same approach is used for INTERFACE_LINK_OPTIONS.

For debug_and_release builds we use the isDebug and isNotDebug
conditions for the generator expressions.

For singular builds (only release or only debug), we set the
generator expression condition to "1" aka always true.
This means that the Qt libraries and link options will always be used
regardless of the configuration with which the CMake application
is configured with.

Fixes: QTBUG-76337
Task-number: QTBUG-38913
Change-Id: I5369d8ba083359a4a92253dbd1dabe9d1efa34db
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2019-07-05 15:59:13 +02:00
..
aix-g++ Updated license headers 2016-01-15 12:25:24 +00:00
aix-g++-64 Updated license headers 2016-01-15 12:25:24 +00:00
android-clang Merge remote-tracking branch 'origin/5.12' into 5.13 2019-06-14 01:00:09 +02:00
android-g++ Android: Prepare for the worst, when the NDK will remove all GNU tools 2018-11-19 11:45:20 +00:00
common Merge remote-tracking branch 'origin/5.12' into 5.13 2019-05-09 13:06:11 +00:00
cygwin-g++ Updated license headers 2016-01-15 12:25:24 +00:00
darwin-g++ Stop including net/if.h from qplatformdefs.h 2017-10-08 06:41:24 +00:00
devices Fix QMAKE_LIBDIR_BCM_HOST for linux-rasp-pi3-g++ 2019-06-25 09:42:09 +02:00
dummy move all target spec handling to qmake-based configure system 2016-12-13 18:56:34 +00:00
features CMake: Put the static dependencies into the relevant configuration 2019-07-05 15:59:13 +02:00
freebsd-clang make mkspecs not mess up library and include search paths 2017-05-31 12:57:09 +00:00
freebsd-g++ make mkspecs not mess up library and include search paths 2017-05-31 12:57:09 +00:00
haiku-g++ Stop including net/if.h from qplatformdefs.h 2017-10-08 06:41:24 +00:00
hpuxi-g++-64 Stop including net/if.h from qplatformdefs.h 2017-10-08 06:41:24 +00:00
hurd-g++ Add <features.h> include to hurd-g++ mkspec 2019-02-14 14:24:56 +00:00
integrity-armv7 integrity: don't mess with QTPLUGIN.platforms 2018-11-21 23:08:10 +00:00
integrity-armv7-imx6 integrity: don't mess with QTPLUGIN.platforms 2018-11-21 23:08:10 +00:00
integrity-armv8-rcar integrity: don't mess with QTPLUGIN.platforms 2018-11-21 23:08:10 +00:00
integrity-x86 integrity: don't mess with QTPLUGIN.platforms 2018-11-21 23:08:10 +00:00
linux-aarch64-gnu-g++ Add new mkspec for cross-compiling Qt5 for AArch64 2017-03-31 00:34:48 +00:00
linux-arm-gnueabi-g++ Updated license headers 2016-01-15 12:25:24 +00:00
linux-clang Stop including net/if.h from qplatformdefs.h 2017-10-08 06:41:24 +00:00
linux-clang-32 add mkspecs for linux clang 32 2018-08-31 05:34:46 +00:00
linux-clang-libc++ Updated license headers 2016-01-15 12:25:24 +00:00
linux-clang-libc++-32 add mkspecs for linux clang 32 2018-08-31 05:34:46 +00:00
linux-g++ Stop including net/if.h from qplatformdefs.h 2017-10-08 06:41:24 +00:00
linux-g++-32 Updated license headers 2016-01-15 12:25:24 +00:00
linux-g++-64 Updated license headers 2016-01-15 12:25:24 +00:00
linux-icc centralize ICC flags for *nix-systems toolchains 2018-06-22 17:04:06 +00:00
linux-icc-32 Updated license headers 2016-01-15 12:25:24 +00:00
linux-icc-64 Updated license headers 2016-01-15 12:25:24 +00:00
linux-icc-k1om linux-icc-k1om build 2017-02-21 14:27:16 +00:00
linux-llvm Stop including net/if.h from qplatformdefs.h 2017-10-08 06:41:24 +00:00
linux-lsb-g++ qmake: link qt libraries by full path 2019-04-15 05:41:08 +00:00
lynxos-g++ Stop including net/if.h from qplatformdefs.h 2017-10-08 06:41:24 +00:00
macx-clang macOS: Share deployment target and device arch config between makespecs 2018-08-23 13:09:46 +00:00
macx-g++ macOS: Share deployment target and device arch config between makespecs 2018-08-23 13:09:46 +00:00
macx-icc macOS: Share deployment target and device arch config between makespecs 2018-08-23 13:09:46 +00:00
macx-ios-clang iOS/tvOS/watchOS: Bump deployment targets 2018-08-24 11:38:16 +00:00
macx-tvos-clang iOS/tvOS/watchOS: Bump deployment targets 2018-08-24 11:38:16 +00:00
macx-watchos-clang iOS/tvOS/watchOS: Bump deployment targets 2018-08-24 11:38:16 +00:00
macx-xcode macOS: Disable main thread checker for Xcode test target 2018-11-12 07:16:26 +00:00
modules Adjust wiki links to the new redirect 2015-03-04 15:36:12 +00:00
netbsd-g++ make mkspecs not mess up library and include search paths 2017-05-31 12:57:09 +00:00
openbsd-g++ make mkspecs not mess up library and include search paths 2017-05-31 12:57:09 +00:00
qnx-aarch64le-qcc Enable stack-protector-strong for QNX 7.0.0 2017-06-13 14:01:24 +00:00
qnx-armle-v7-qcc Convert the old feature system 2016-09-15 08:24:10 +00:00
qnx-x86-64-qcc Enable stack-protector-strong for QNX 7.0.0 2017-06-13 14:01:24 +00:00
qnx-x86-qcc Convert the old feature system 2016-09-15 08:24:10 +00:00
solaris-cc Stop including net/if.h from qplatformdefs.h 2017-10-08 06:41:24 +00:00
solaris-cc-64 Stop including net/if.h from qplatformdefs.h 2017-10-08 06:41:24 +00:00
solaris-cc-64-stlport Updated license headers 2016-01-15 12:25:24 +00:00
solaris-cc-stlport Updated license headers 2016-01-15 12:25:24 +00:00
solaris-g++ Stop including net/if.h from qplatformdefs.h 2017-10-08 06:41:24 +00:00
solaris-g++-64 Stop including net/if.h from qplatformdefs.h 2017-10-08 06:41:24 +00:00
unsupported Stop including net/if.h from qplatformdefs.h 2017-10-08 06:41:24 +00:00
wasm-emscripten Fix emar invocation on Windows for MinGW 2019-05-13 04:37:47 +00:00
win32-arm64-msvc2017 Add Windows Desktop arm64 target to Qtbase 2018-11-11 09:05:10 +00:00
win32-clang-g++ mkspecs: Factorize common parts of win32-g++ and win32-clang-g++ 2018-02-21 18:08:01 +00:00
win32-clang-msvc Fix precompiled headers with clang-cl 2019-04-09 21:58:54 +00:00
win32-g++ Merge remote-tracking branch 'origin/5.12' into 5.13 2019-04-02 01:00:26 +02:00
win32-icc Fix qtbase build for clang-cl with MSVC 2017 15.8 2018-08-24 12:00:43 +00:00
win32-icc-k1om linux-icc-k1om build 2017-02-21 14:27:16 +00:00
win32-msvc unify windows mkspecs: define c++ flags explicitly 2018-02-22 18:45:15 +00:00
winrt-arm64-msvc2017 Add arm64 winrt target 2019-01-24 21:04:20 +00:00
winrt-arm64-msvc2019 winrt: Add support for Visual Studio 2019 2019-02-20 13:32:29 +00:00
winrt-arm-msvc2015 qmake: rewrite msvc/nmake cross-build environment setup 2019-01-05 20:33:24 +00:00
winrt-arm-msvc2017 qmake: rewrite msvc/nmake cross-build environment setup 2019-01-05 20:33:24 +00:00
winrt-arm-msvc2019 winrt: Add support for Visual Studio 2019 2019-02-20 13:32:29 +00:00
winrt-x64-msvc2015 qmake: rewrite msvc/nmake cross-build environment setup 2019-01-05 20:33:24 +00:00
winrt-x64-msvc2017 qmake: rewrite msvc/nmake cross-build environment setup 2019-01-05 20:33:24 +00:00
winrt-x64-msvc2019 winrt: Add support for Visual Studio 2019 2019-02-20 13:32:29 +00:00
winrt-x86-msvc2015 qmake: rewrite msvc/nmake cross-build environment setup 2019-01-05 20:33:24 +00:00
winrt-x86-msvc2017 qmake: rewrite msvc/nmake cross-build environment setup 2019-01-05 20:33:24 +00:00
winrt-x86-msvc2019 winrt: Add support for Visual Studio 2019 2019-02-20 13:32:29 +00:00