From 108f5b4c2b02c5210853f1a9a69d818b795c5302 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Thu, 6 Oct 2022 14:41:52 +0200 Subject: [PATCH 1/2] [llvm] [test] Add missing canonicalization of LLVM_ENABLE_ZSTD Add LLVM_ENABLE_ZSTD to llvm_canonicalize_cmake_booleans(). This is needed to ensure that the substitutions in lit.site.cfg.py resolve to correct Python booleans. Differential Revision: https://reviews.llvm.org/D135357 (cherry picked from commit bc4bcbcfc820b324f680e8f260691c38052eedc9) --- llvm/test/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/llvm/test/CMakeLists.txt b/llvm/test/CMakeLists.txt index 86ca20ada7b8..e7dd22261cc4 100644 --- a/llvm/test/CMakeLists.txt +++ b/llvm/test/CMakeLists.txt @@ -8,6 +8,7 @@ llvm_canonicalize_cmake_booleans( LLVM_ENABLE_CURL LLVM_ENABLE_HTTPLIB LLVM_ENABLE_ZLIB + LLVM_ENABLE_ZSTD LLVM_ENABLE_LIBXML2 LLVM_INCLUDE_GO_TESTS LLVM_LINK_LLVM_DYLIB From 5915b6e061ceab0f406b8842c33941c794663c8b Mon Sep 17 00:00:00 2001 From: Petr Hosek Date: Fri, 30 Sep 2022 20:33:13 +0000 Subject: [PATCH 2/2] [CMake] Provide Findzstd module This module is used to find the system zstd library. The imported targets intentionally use the same name as the generate zstd config CMake file so these can be used interchangeably. Differential Revision: https://reviews.llvm.org/D134990 (cherry picked from commit 2d4fd0b6d5d5582ebb8b521d807104235d67aee4) --- llvm/cmake/modules/Findzstd.cmake | 49 +++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 llvm/cmake/modules/Findzstd.cmake diff --git a/llvm/cmake/modules/Findzstd.cmake b/llvm/cmake/modules/Findzstd.cmake new file mode 100644 index 000000000000..fab9ea803261 --- /dev/null +++ b/llvm/cmake/modules/Findzstd.cmake @@ -0,0 +1,49 @@ +# Try to find the zstd library +# +# If successful, the following variables will be defined: +# zstd_INCLUDE_DIR +# zstd_LIBRARY +# zstd_FOUND +# +# Additionally, one of the following import targets will be defined: +# zstd::libzstd_shared +# zstd::libzstd_static + +if(MSVC) + set(zstd_SHARED_LIBRARY_SUFFIX "\\${CMAKE_LINK_LIBRARY_SUFFIX}$") + set(zstd_STATIC_LIBRARY_SUFFIX "_static\\${CMAKE_STATIC_LIBRARY_SUFFIX}$") +else() + set(zstd_SHARED_LIBRARY_SUFFIX "\\${CMAKE_SHARED_LIBRARY_SUFFIX}$") + set(zstd_STATIC_LIBRARY_SUFFIX "\\${CMAKE_STATIC_LIBRARY_SUFFIX}$") +endif() + +find_path(zstd_INCLUDE_DIR NAMES zstd.h) +find_library(zstd_LIBRARY NAMES zstd zstd_static) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args( + zstd DEFAULT_MSG + zstd_LIBRARY zstd_INCLUDE_DIR +) + +if(zstd_FOUND) + if(zstd_LIBRARY MATCHES "${zstd_SHARED_LIBRARY_SUFFIX}$" AND + NOT TARGET zstd::libzstd_shared) + add_library(zstd::libzstd_shared SHARED IMPORTED) + set_target_properties(zstd::libzstd_shared PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${zstd_INCLUDE_DIR}" + IMPORTED_LOCATION "${zstd_LIBRARY}") + endif() + if(zstd_LIBRARY MATCHES "${zstd_STATIC_LIBRARY_SUFFIX}$" AND + NOT TARGET zstd::libzstd_static) + add_library(zstd::libzstd_static STATIC IMPORTED) + set_target_properties(zstd::libzstd_static PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${zstd_INCLUDE_DIR}" + IMPORTED_LOCATION "${zstd_LIBRARY}") + endif() +endif() + +unset(zstd_SHARED_LIBRARY_SUFFIX) +unset(zstd_STATIC_LIBRARY_SUFFIX) + +mark_as_advanced(zstd_INCLUDE_DIR zstd_LIBRARY)