]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
Make `zstd::libzstd` an imported interface target.
authorTheodore Tsirpanis <theodore.tsirpanis@tiledb.com>
Tue, 19 Dec 2023 13:06:03 +0000 (15:06 +0200)
committerTheodore Tsirpanis <theodore.tsirpanis@tiledb.com>
Tue, 19 Dec 2023 15:04:09 +0000 (17:04 +0200)
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

index 752f3ab11ce79a5e5a9f3566ec1a340a750e5693..0a7f773d75fab49fc0fda74b5cccbf71796de10a 100644 (file)
@@ -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")