You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by ko...@apache.org on 2023/04/12 20:46:54 UTC
[arrow] branch main updated: GH-35018: [CI][Java][C++] Use ARROW_ZSTD_USE_SHARED=OFF for LLVM (#35023)
This is an automated email from the ASF dual-hosted git repository.
kou pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/main by this push:
new 0434ab6507 GH-35018: [CI][Java][C++] Use ARROW_ZSTD_USE_SHARED=OFF for LLVM (#35023)
0434ab6507 is described below
commit 0434ab65075ecd1d2ab9245bcd7ec6038934ed29
Author: Sutou Kouhei <ko...@clear-code.com>
AuthorDate: Thu Apr 13 05:46:42 2023 +0900
GH-35018: [CI][Java][C++] Use ARROW_ZSTD_USE_SHARED=OFF for LLVM (#35023)
### Rationale for this change
LLVM may use Zstandard. For example `llvm@ 15` in Homebrew uses Zstandard. LLVM finds
Zstandared by itself. So libzstd.dylib may be used even when `ARROW_ZSTD_USE_SHARED` is `OFF`.
### What changes are included in this PR?
This change adjusts Zstandared used by LLVM to reflect `ARROW_ZSTD_USE_SHARED`.
### Are these changes tested?
Yes.
### Are there any user-facing changes?
Yes.
* Closes: #35018
Authored-by: Sutou Kouhei <ko...@clear-code.com>
Signed-off-by: Sutou Kouhei <ko...@clear-code.com>
---
cpp/cmake_modules/FindLLVMAlt.cmake | 15 +++++++++++++++
cpp/src/gandiva/CMakeLists.txt | 3 +++
cpp/src/gandiva/GandivaConfig.cmake.in | 3 +++
3 files changed, 21 insertions(+)
diff --git a/cpp/cmake_modules/FindLLVMAlt.cmake b/cpp/cmake_modules/FindLLVMAlt.cmake
index c44c480228..b3d77978f1 100644
--- a/cpp/cmake_modules/FindLLVMAlt.cmake
+++ b/cpp/cmake_modules/FindLLVMAlt.cmake
@@ -96,6 +96,21 @@ if(LLVM_FOUND)
add_library(LLVM::LLVM_LIBS INTERFACE IMPORTED)
set_target_properties(LLVM::LLVM_LIBS PROPERTIES INTERFACE_LINK_LIBRARIES
"${LLVM_LIBS}")
+
+ if(TARGET LLVMSupport AND NOT ARROW_ZSTD_USE_SHARED)
+ get_target_property(LLVM_SUPPORT_INTERFACE_LINK_LIBRARIES LLVMSupport
+ INTERFACE_LINK_LIBRARIES)
+ list(FIND LLVM_SUPPORT_INTERFACE_LINK_LIBRARIES zstd::libzstd_shared
+ LLVM_SUPPORT_LIBZSTD_INDEX)
+ if(NOT LLVM_SUPPORT_LIBZSTD_INDEX EQUAL -1)
+ list(REMOVE_AT LLVM_SUPPORT_INTERFACE_LINK_LIBRARIES ${LLVM_SUPPORT_LIBZSTD_INDEX})
+ list(INSERT LLVM_SUPPORT_INTERFACE_LINK_LIBRARIES ${LLVM_SUPPORT_LIBZSTD_INDEX}
+ zstd::libzstd_static)
+ endif()
+ set_target_properties(LLVMSupport
+ PROPERTIES INTERFACE_LINK_LIBRARIES
+ "${LLVM_SUPPORT_INTERFACE_LINK_LIBRARIES}")
+ endif()
endif()
mark_as_advanced(CLANG_EXECUTABLE LLVM_LINK_EXECUTABLE)
diff --git a/cpp/src/gandiva/CMakeLists.txt b/cpp/src/gandiva/CMakeLists.txt
index 312ab84f65..36c7ac356b 100644
--- a/cpp/src/gandiva/CMakeLists.txt
+++ b/cpp/src/gandiva/CMakeLists.txt
@@ -27,6 +27,9 @@ add_dependencies(gandiva-all gandiva gandiva-tests gandiva-benchmarks)
find_package(LLVMAlt REQUIRED)
provide_find_module(LLVMAlt "Gandiva")
+if(ARROW_WITH_ZSTD)
+ provide_find_module(zstdAlt "Gandiva")
+endif()
add_definitions(-DGANDIVA_LLVM_VERSION=${LLVM_VERSION_MAJOR})
diff --git a/cpp/src/gandiva/GandivaConfig.cmake.in b/cpp/src/gandiva/GandivaConfig.cmake.in
index 18d194f1e4..36e8fa4bb3 100644
--- a/cpp/src/gandiva/GandivaConfig.cmake.in
+++ b/cpp/src/gandiva/GandivaConfig.cmake.in
@@ -36,6 +36,9 @@ else()
unset(GANDIVA_CMAKE_MODULE_PATH_OLD)
endif()
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
+if(ARROW_WITH_ZSTD)
+ find_dependency(zstdAlt)
+endif()
find_dependency(LLVMAlt)
if(DEFINED GANDIVA_CMAKE_MODULE_PATH_OLD)
set(CMAKE_MODULE_PATH ${GANDIVA_CMAKE_MODULE_PATH_OLD})