summaryrefslogtreecommitdiffstats
path: root/cmake/FindWrapSystemZLIB.cmake
diff options
context:
space:
mode:
authorKai Köhne <kai.koehne@qt.io>2022-03-31 12:41:13 +0200
committerKai Köhne <kai.koehne@qt.io>2022-04-22 14:34:47 +0200
commit48561178e2488e6fe7763c2229d66072810afcb3 (patch)
tree4e5347a261a5dcd79d50c982aaf066173c6d5d41 /cmake/FindWrapSystemZLIB.cmake
parente3941facca2e365bb2eb961edd7085d081c64220 (diff)
zlib as static library
Do build zlib as static 3rdparty library. This makes it easier to disable warnings. Pick-to: 6.3 Change-Id: I1db331b671b64e68d81c56b0df337983c3bbe7fa Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'cmake/FindWrapSystemZLIB.cmake')
-rw-r--r--cmake/FindWrapSystemZLIB.cmake29
1 files changed, 29 insertions, 0 deletions
diff --git a/cmake/FindWrapSystemZLIB.cmake b/cmake/FindWrapSystemZLIB.cmake
new file mode 100644
index 0000000000..c109a598be
--- /dev/null
+++ b/cmake/FindWrapSystemZLIB.cmake
@@ -0,0 +1,29 @@
+# We can't create the same interface imported target multiple times, CMake will complain if we do
+# that. This can happen if the find_package call is done in multiple different subdirectories.
+if(TARGET WrapSystemZLIB::WrapSystemZLIB)
+ set(WrapSystemZLIB_FOUND ON)
+ return()
+endif()
+
+set(WrapSystemZLIB_FOUND OFF)
+
+find_package(ZLIB ${${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION})
+
+if(ZLIB_FOUND)
+ set(WrapSystemZLIB_FOUND ON)
+
+ add_library(WrapSystemZLIB::WrapSystemZLIB INTERFACE IMPORTED)
+ if(APPLE)
+ # On Darwin platforms FindZLIB sets IMPORTED_LOCATION to the absolute path of the library
+ # within the framework. This ends up as an absolute path link flag, which we don't want,
+ # because that makes our .prl files un-relocatable and also breaks iOS simulator_and_device
+ # SDK switching in Xcode.
+ # Just pass a linker flag instead.
+ target_link_libraries(WrapSystemZLIB::WrapSystemZLIB INTERFACE "-lz")
+ else()
+ target_link_libraries(WrapSystemZLIB::WrapSystemZLIB INTERFACE ZLIB::ZLIB)
+ endif()
+endif()
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(WrapSystemZLIB DEFAULT_MSG WrapSystemZLIB_FOUND)