From 475da4fb2e2aef102edecba04278b38fce44fb81 Mon Sep 17 00:00:00 2001 From: Theodore Tsirpanis Date: Tue, 19 Dec 2023 15:06:03 +0200 Subject: [PATCH] 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. --- build/cmake/zstdConfig.cmake.in | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/build/cmake/zstdConfig.cmake.in b/build/cmake/zstdConfig.cmake.in index 752f3ab11..0a7f773d7 100644 --- a/build/cmake/zstdConfig.cmake.in +++ b/build/cmake/zstdConfig.cmake.in @@ -7,10 +7,18 @@ endif() include("${CMAKE_CURRENT_LIST_DIR}/zstdTargets.cmake") -if(@ZSTD_BUILD_SHARED@ AND NOT @ZSTD_BUILD_STATIC@) - add_library(zstd::libzstd ALIAS zstd::libzstd_shared) -elseif(NOT @ZSTD_BUILD_SHARED@ AND @ZSTD_BUILD_STATIC@) - add_library(zstd::libzstd ALIAS zstd::libzstd_static) +if(NOT TARGET zstd::libzstd) + if(@ZSTD_BUILD_SHARED@ AND NOT @ZSTD_BUILD_STATIC@) + add_library(zstd::libzstd INTERFACE IMPORTED) + 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() check_required_components("zstd") -- 2.47.3