Make zstd::libzstd an imported interface target.

It cannot be an alias, because it would lock the package to use either static or shared libraries at its build time. We want to decide this at the time `find_package` is called.
This commit is contained in:
Theodore Tsirpanis
2023-12-19 17:04:09 +02:00
parent c53d650d9a
commit 475da4fb2e
+12 -4
View File
@@ -7,10 +7,18 @@ endif()
include("${CMAKE_CURRENT_LIST_DIR}/zstdTargets.cmake") include("${CMAKE_CURRENT_LIST_DIR}/zstdTargets.cmake")
if(@ZSTD_BUILD_SHARED@ AND NOT @ZSTD_BUILD_STATIC@) if(NOT TARGET zstd::libzstd)
add_library(zstd::libzstd ALIAS zstd::libzstd_shared) if(@ZSTD_BUILD_SHARED@ AND NOT @ZSTD_BUILD_STATIC@)
elseif(NOT @ZSTD_BUILD_SHARED@ AND @ZSTD_BUILD_STATIC@) add_library(zstd::libzstd INTERFACE IMPORTED)
add_library(zstd::libzstd ALIAS zstd::libzstd_static) set_target_properties(zstd::libzstd PROPERTIES
INTERFACE_LINK_LIBRARIES "zstd::libzstd_shared"
)
elseif(NOT @ZSTD_BUILD_SHARED@ AND @ZSTD_BUILD_STATIC@)
add_library(zstd::libzstd INTERFACE IMPORTED)
set_target_properties(zstd::libzstd PROPERTIES
INTERFACE_LINK_LIBRARIES "zstd::libzstd_static"
)
endif()
endif() endif()
check_required_components("zstd") check_required_components("zstd")