[PATCH] D133222: use LLVM_ZSTD_PREFERENCE_LIST in favor of LLVM_PREFER_STATIC_ZSTD

Cole Kissane via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 2 12:03:59 PDT 2022


ckissane created this revision.
ckissane added a reviewer: phosek.
Herald added subscribers: hiraditya, mgorny.
Herald added a project: All.
ckissane requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

removes LLVM_PREFER_STATIC_ZSTD in favor of using a LLVM_ZSTD_PREFERENCE_LIST
Change allows flexiblity and clarity by passing a order of target preferences, allowing us to also handle scenarios where you only want static and don't want to fall back to shared.
also shorter clearer code in the cmake


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D133222

Files:
  llvm/CMakeLists.txt
  llvm/lib/Support/CMakeLists.txt


Index: llvm/lib/Support/CMakeLists.txt
===================================================================
--- llvm/lib/Support/CMakeLists.txt
+++ llvm/lib/Support/CMakeLists.txt
@@ -25,22 +25,15 @@
   list(APPEND imported_libs ZLIB::ZLIB)
 endif()
 
-set(zstd_target none)
+set(zstd_target zstd::libzstd_nonexistant)
 
 if(LLVM_ENABLE_ZSTD)
-  if(LLVM_PREFER_STATIC_ZSTD)
-    if(TARGET zstd::libzstd_static)
-      set(zstd_target zstd::libzstd_static)
-    else()
-      set(zstd_target zstd::libzstd_shared)
+  foreach( try_target ${LLVM_ZSTD_PREFERENCE_LIST} )
+    if( TARGET ${try_target} )
+      set(zstd_target ${try_target})
+      break()
     endif()
-  else()
-    if(TARGET zstd::libzstd_shared)
-      set(zstd_target zstd::libzstd_shared)
-    else()
-      set(zstd_target zstd::libzstd_static)
-    endif()
-  endif()
+  endforeach()
 endif()
 
 if(LLVM_ENABLE_ZSTD)
Index: llvm/CMakeLists.txt
===================================================================
--- llvm/CMakeLists.txt
+++ llvm/CMakeLists.txt
@@ -486,7 +486,7 @@
 
 set(LLVM_ENABLE_ZSTD "ON" CACHE STRING "Use zstd for compression/decompression if available. Can be ON, OFF, or FORCE_ON")
 
-set(LLVM_PREFER_STATIC_ZSTD TRUE CACHE BOOL "Use static version of zstd if available. Can be TRUE, FALSE")
+set(LLVM_ZSTD_PREFERENCE_LIST "zstd::libzstd_shared;zstd::libzstd_static" CACHE STRING "Semicolon-separated list of targets to consider for zstd. First supported target in list will be used. EG: zstd::libzstd_shared;zstd::libzstd_static")
 
 set(LLVM_ENABLE_CURL "OFF" CACHE STRING "Use libcurl for the HTTP client if available. Can be ON, OFF, or FORCE_ON")
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D133222.457662.patch
Type: text/x-patch
Size: 1647 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220902/6e693ebb/attachment.bin>


More information about the llvm-commits mailing list