diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2021-03-17 15:39:01 +0100 |
---|---|---|
committer | Alexandru Croitor <alexandru.croitor@qt.io> | 2021-03-19 12:52:49 +0000 |
commit | d962c9ff857c5d4f22b8c0a2b714683b7493baf5 (patch) | |
tree | 27576103294da6989136342bdc177c9ff25f701c | |
parent | 57c737f3256962b90eef83d1767d85ac403bc824 (diff) |
CMake: Make Platform a dependency for all Qt internal targets
In particular that influences BundledLibrary targets.
Most internal targets already depended transitively on Qt::Platform
via Qt::Core as a public dependency. This was not the case for
BundledLibrary targets which don't link to Qt::Core.
This led to compilation issues in user projects when targeting
WebAssembly, due to mismatched flags between a bundled Harfbuzz vs
a user project. Probably other subtle issues as well (e.g. none of the
Windows specific compile definitions were passed to bundled libs).
Bundled libraries depend on PlatformCommonInternal already, so make
PlatformCommonInternal turn depend on the public Platform target.
I thought that was already the case, but we merely relied on the
Qt::Core dependency.
Note that Qt::Core should still list Platform as a public dependency,
so it gets propagated to user projects.
Amends acf9b3a68b98b806329dd92184e632e049441cec
Change-Id: Ida3b219818f89ec6eba2c2d92c5db65ad56bc5a4
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
-rw-r--r-- | cmake/QtInternalTargets.cmake | 1 | ||||
-rw-r--r-- | cmake/QtPublicTargetsHelpers.cmake | 4 | ||||
-rw-r--r-- | src/3rdparty/harfbuzz-ng/CMakeLists.txt | 1 |
3 files changed, 3 insertions, 3 deletions
diff --git a/cmake/QtInternalTargets.cmake b/cmake/QtInternalTargets.cmake index 97386e22d8..df9724765e 100644 --- a/cmake/QtInternalTargets.cmake +++ b/cmake/QtInternalTargets.cmake @@ -72,6 +72,7 @@ endfunction() add_library(PlatformCommonInternal INTERFACE) add_library(Qt::PlatformCommonInternal ALIAS PlatformCommonInternal) +target_link_libraries(PlatformCommonInternal INTERFACE Platform) add_library(PlatformModuleInternal INTERFACE) add_library(Qt::PlatformModuleInternal ALIAS PlatformModuleInternal) diff --git a/cmake/QtPublicTargetsHelpers.cmake b/cmake/QtPublicTargetsHelpers.cmake index 2e5eb564f4..6558becf5c 100644 --- a/cmake/QtPublicTargetsHelpers.cmake +++ b/cmake/QtPublicTargetsHelpers.cmake @@ -1,5 +1,5 @@ -# Defines the public Qt::Platform target, which is used by both internal Qt builds as well as -# public Qt consuming projects. +# Defines the public Qt::Platform target, which serves as a dependency for all internal Qt target +# as well as user projects consuming Qt. function(qt_internal_setup_public_platform_target) ## QtPlatform Target: add_library(Platform INTERFACE) diff --git a/src/3rdparty/harfbuzz-ng/CMakeLists.txt b/src/3rdparty/harfbuzz-ng/CMakeLists.txt index 5e97a19751..37e07f2350 100644 --- a/src/3rdparty/harfbuzz-ng/CMakeLists.txt +++ b/src/3rdparty/harfbuzz-ng/CMakeLists.txt @@ -65,7 +65,6 @@ qt_internal_add_3rdparty_library(BundledHarfbuzz ) qt_disable_warnings(BundledHarfbuzz) qt_set_symbol_visibility_hidden(BundledHarfbuzz) -qt_set_msvc_cplusplus_options(BundledHarfbuzz PRIVATE) #### Keys ignored in scope 1:.:.:harfbuzz-ng.pro:<TRUE>: # OTHER_FILES = "$$PWD/src/harfbuzz.cc" |