summaryrefslogtreecommitdiffstats
path: root/configure.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'configure.cmake')
-rw-r--r--configure.cmake16
1 files changed, 14 insertions, 2 deletions
diff --git a/configure.cmake b/configure.cmake
index cfd355dcfe..3412703333 100644
--- a/configure.cmake
+++ b/configure.cmake
@@ -4,7 +4,19 @@
#### Libraries
-qt_find_package(ZLIB 1.0.8 PROVIDED_TARGETS ZLIB::ZLIB MODULE_NAME global QMAKE_LIB zlib)
+qt_find_package(WrapZLIB 1.0.8 PROVIDED_TARGETS WrapZLIB::WrapZLIB MODULE_NAME global QMAKE_LIB zlib)
+# special case begin
+# Work around global target promotion failure when WrapZLIB is used on APPLE platforms.
+# What ends up happening is that the ZLIB::ZLIB target is not promoted to global by qt_find_package,
+# then qt_find_package(WrapSystemPNG) tries to find its dependency ZLIB::ZLIB, sees it's not global
+# and tries to promote it to global, but fails because the directory scope of the PNG package is
+# different (src/gui) from where ZLIB was originally found (qtbase root).
+# To avoid that, just manually promote the target to global here.
+if(TARGET ZLIB::ZLIB)
+ set_property(TARGET ZLIB::ZLIB PROPERTY IMPORTED_GLOBAL TRUE)
+endif()
+
+# special case end
qt_find_package(ZSTD 1.3 PROVIDED_TARGETS ZSTD::ZSTD MODULE_NAME global QMAKE_LIB zstd)
qt_find_package(WrapDBus1 1.2 PROVIDED_TARGETS dbus-1 MODULE_NAME global QMAKE_LIB dbus)
qt_find_package(Libudev PROVIDED_TARGETS PkgConfig::Libudev MODULE_NAME global QMAKE_LIB libudev)
@@ -824,7 +836,7 @@ qt_feature("stack-protector-strong" PRIVATE
)
qt_feature("system-zlib" PRIVATE
LABEL "Using system zlib"
- CONDITION ZLIB_FOUND
+ CONDITION WrapZLIB_FOUND
)
qt_feature("zstd" PRIVATE
LABEL "Zstandard support"