30 lines
1.2 KiB
CMake
30 lines
1.2 KiB
CMake
|
# 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)
|