diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt --- a/llvm/CMakeLists.txt +++ b/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") diff --git a/llvm/lib/Support/CMakeLists.txt b/llvm/lib/Support/CMakeLists.txt --- a/llvm/lib/Support/CMakeLists.txt +++ b/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)