diff --git a/llvm/cmake/config-ix.cmake b/llvm/cmake/config-ix.cmake index 9d59fea8799b..687f5077cbfd 100644 --- a/llvm/cmake/config-ix.cmake +++ b/llvm/cmake/config-ix.cmake @@ -195,8 +195,19 @@ if(LLVM_ENABLE_ZSTD) elseif(NOT LLVM_USE_SANITIZER MATCHES "Memory.*") find_package(zstd QUIET) endif() + + # If LLVM_USE_STATIC_ZSTD is specified, make sure we enable zstd only if static + # libraries are found. + if(LLVM_USE_STATIC_ZSTD AND NOT TARGET zstd::libzstd_static) + # Fail if LLVM_ENABLE_ZSTD is FORCE_ON. + if(LLVM_ENABLE_ZSTD STREQUAL FORCE_ON) + message(FATAL_ERROR "Failed to find static zstd libraries, but LLVM_USE_STATIC_ZSTD=ON and LLVM_ENABLE_ZSTD=FORCE_ON.") + endif() + set(LLVM_ENABLE_ZSTD OFF) + else() + set(LLVM_ENABLE_ZSTD ${zstd_FOUND}) + endif() endif() -set(LLVM_ENABLE_ZSTD ${zstd_FOUND}) if(LLVM_ENABLE_LIBXML2) if(LLVM_ENABLE_LIBXML2 STREQUAL FORCE_ON)