summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2021-03-17 15:39:01 +0100
committerAlexandru Croitor <alexandru.croitor@qt.io>2021-03-19 12:52:49 +0000
commitd962c9ff857c5d4f22b8c0a2b714683b7493baf5 (patch)
tree27576103294da6989136342bdc177c9ff25f701c
parent57c737f3256962b90eef83d1767d85ac403bc824 (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.cmake1
-rw-r--r--cmake/QtPublicTargetsHelpers.cmake4
-rw-r--r--src/3rdparty/harfbuzz-ng/CMakeLists.txt1
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"