Skip to content

Commit f5cab60

Browse files
committed
Make xsimd mandatory
1 parent 557d65b commit f5cab60

5 files changed

Lines changed: 31 additions & 55 deletions

File tree

cpp/cmake_modules/ThirdpartyToolchain.cmake

Lines changed: 13 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2844,28 +2844,20 @@ macro(build_xsimd)
28442844
set(XSIMD_VENDORED TRUE)
28452845
endmacro()
28462846

2847-
if((NOT ARROW_SIMD_LEVEL STREQUAL "NONE") OR (NOT ARROW_RUNTIME_SIMD_LEVEL STREQUAL "NONE"
2848-
))
2849-
set(ARROW_USE_XSIMD TRUE)
2847+
# Xsimd is mandatory as its CPU feature detection is the basis for Arrow CpuInfo
2848+
resolve_dependency(xsimd
2849+
FORCE_ANY_NEWER_VERSION
2850+
TRUE
2851+
IS_RUNTIME_DEPENDENCY
2852+
FALSE
2853+
REQUIRED_VERSION
2854+
"14.2.0")
2855+
2856+
if(xsimd_SOURCE STREQUAL "BUNDLED")
2857+
set(ARROW_XSIMD arrow::xsimd)
28502858
else()
2851-
set(ARROW_USE_XSIMD FALSE)
2852-
endif()
2853-
2854-
if(ARROW_USE_XSIMD)
2855-
resolve_dependency(xsimd
2856-
FORCE_ANY_NEWER_VERSION
2857-
TRUE
2858-
IS_RUNTIME_DEPENDENCY
2859-
FALSE
2860-
REQUIRED_VERSION
2861-
"14.2.0")
2862-
2863-
if(xsimd_SOURCE STREQUAL "BUNDLED")
2864-
set(ARROW_XSIMD arrow::xsimd)
2865-
else()
2866-
message(STATUS "xsimd found. Headers: ${xsimd_INCLUDE_DIRS}")
2867-
set(ARROW_XSIMD xsimd)
2868-
endif()
2859+
message(STATUS "xsimd found. Headers: ${xsimd_INCLUDE_DIRS}")
2860+
set(ARROW_XSIMD xsimd)
28692861
endif()
28702862

28712863
macro(build_zlib)

cpp/src/arrow/CMakeLists.txt

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -601,6 +601,9 @@ arrow_add_object_library(ARROW_UTIL ${ARROW_UTIL_SRCS})
601601
foreach(ARROW_UTIL_TARGET ${ARROW_UTIL_TARGETS})
602602
target_compile_definitions(${ARROW_UTIL_TARGET} PRIVATE URI_STATIC_BUILD)
603603
endforeach()
604+
foreach(ARROW_UTIL_TARGET ${ARROW_UTIL_TARGETS})
605+
target_link_libraries(${ARROW_UTIL_TARGET} PRIVATE ${ARROW_XSIMD})
606+
endforeach()
604607

605608
if(ARROW_USE_BOOST)
606609
foreach(ARROW_UTIL_TARGET ${ARROW_UTIL_TARGETS})
@@ -617,11 +620,6 @@ if(ARROW_USE_OPENSSL)
617620
target_link_libraries(${ARROW_UTIL_TARGET} PRIVATE ${ARROW_OPENSSL_LIBS})
618621
endforeach()
619622
endif()
620-
if(ARROW_USE_XSIMD)
621-
foreach(ARROW_UTIL_TARGET ${ARROW_UTIL_TARGETS})
622-
target_link_libraries(${ARROW_UTIL_TARGET} PRIVATE ${ARROW_XSIMD})
623-
endforeach()
624-
endif()
625623
if(ARROW_WITH_BROTLI)
626624
foreach(ARROW_UTIL_TARGET ${ARROW_UTIL_TARGETS})
627625
target_link_libraries(${ARROW_UTIL_TARGET} PRIVATE ${ARROW_BROTLI_LIBS})
@@ -734,11 +732,9 @@ if(ARROW_CSV)
734732
csv/parser.cc
735733
csv/reader.cc
736734
csv/writer.cc)
737-
if(ARROW_USE_XSIMD)
738-
foreach(ARROW_CSV_TARGET ${ARROW_CSV_TARGETS})
739-
target_link_libraries(${ARROW_CSV_TARGET} PRIVATE ${ARROW_XSIMD})
740-
endforeach()
741-
endif()
735+
foreach(ARROW_CSV_TARGET ${ARROW_CSV_TARGETS})
736+
target_link_libraries(${ARROW_CSV_TARGET} PRIVATE ${ARROW_XSIMD})
737+
endforeach()
742738

743739
list(APPEND ARROW_TESTING_SRCS csv/test_common.cc)
744740
else()
@@ -855,15 +851,13 @@ if(ARROW_COMPUTE)
855851
list(APPEND ARROW_COMPUTE_SHARED_INSTALL_INTERFACE_LIBS Arrow::arrow_shared)
856852
list(APPEND ARROW_COMPUTE_STATIC_LINK_LIBS arrow_static)
857853
list(APPEND ARROW_COMPUTE_SHARED_LINK_LIBS arrow_shared)
854+
list(APPEND ARROW_COMPUTE_STATIC_LINK_LIBS ${ARROW_XSIMD})
855+
list(APPEND ARROW_COMPUTE_SHARED_PRIVATE_LINK_LIBS ${ARROW_XSIMD})
858856

859857
if(ARROW_USE_BOOST)
860858
list(APPEND ARROW_COMPUTE_STATIC_LINK_LIBS Boost::headers)
861859
list(APPEND ARROW_COMPUTE_SHARED_PRIVATE_LINK_LIBS Boost::headers)
862860
endif()
863-
if(ARROW_USE_XSIMD)
864-
list(APPEND ARROW_COMPUTE_STATIC_LINK_LIBS ${ARROW_XSIMD})
865-
list(APPEND ARROW_COMPUTE_SHARED_PRIVATE_LINK_LIBS ${ARROW_XSIMD})
866-
endif()
867861
if(ARROW_WITH_OPENTELEMETRY)
868862
list(APPEND ARROW_COMPUTE_STATIC_LINK_LIBS ${ARROW_OPENTELEMETRY_LIBS})
869863
list(APPEND ARROW_COMPUTE_SHARED_PRIVATE_LINK_LIBS ${ARROW_OPENTELEMETRY_LIBS})
@@ -910,11 +904,9 @@ endif()
910904

911905
arrow_add_object_library(ARROW_COMPUTE_CORE ${ARROW_COMPUTE_SRCS})
912906

913-
if(ARROW_USE_XSIMD)
914-
foreach(ARROW_COMPUTE_CORE_TARGET ${ARROW_COMPUTE_CORE_TARGETS})
915-
target_link_libraries(${ARROW_COMPUTE_CORE_TARGET} PRIVATE ${ARROW_XSIMD})
916-
endforeach()
917-
endif()
907+
foreach(ARROW_COMPUTE_CORE_TARGET ${ARROW_COMPUTE_CORE_TARGETS})
908+
target_link_libraries(${ARROW_COMPUTE_CORE_TARGET} PRIVATE ${ARROW_XSIMD})
909+
endforeach()
918910
if(ARROW_WITH_OPENTELEMETRY)
919911
foreach(ARROW_COMPUTE_CORE_TARGET ${ARROW_COMPUTE_CORE_TARGETS})
920912
target_link_libraries(${ARROW_COMPUTE_CORE_TARGET}

cpp/src/arrow/util/CMakeLists.txt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,7 @@ else()
3939
endif()
4040

4141
set(ARROW_UTILITY_TEST_LINK_LIBS Boost::headers)
42-
if(ARROW_USE_XSIMD)
43-
list(APPEND ARROW_UTILITY_TEST_LINK_LIBS ${ARROW_XSIMD})
44-
endif()
42+
list(APPEND ARROW_UTILITY_TEST_LINK_LIBS ${ARROW_XSIMD})
4543
if(ARROW_WITH_OPENTELEMETRY)
4644
list(APPEND ARROW_UTILITY_TEST_LINK_LIBS ${ARROW_OPENTELEMETRY_LIBS})
4745
endif()
@@ -135,9 +133,7 @@ add_arrow_benchmark(tdigest_benchmark)
135133
add_arrow_benchmark(thread_pool_benchmark)
136134
add_arrow_benchmark(trie_benchmark)
137135
set(ARROW_BENCHMARK_UTF8_UTIL_LINK_LIBS)
138-
if(ARROW_USE_XSIMD)
139-
list(APPEND ARROW_BENCHMARK_UTF8_UTIL_LINK_LIBS ${ARROW_XSIMD})
140-
endif()
136+
list(APPEND ARROW_BENCHMARK_UTF8_UTIL_LINK_LIBS ${ARROW_XSIMD})
141137
add_arrow_benchmark(utf8_util_benchmark EXTRA_LINK_LIBS
142138
${ARROW_BENCHMARK_UTF8_UTIL_LINK_LIBS})
143139
add_arrow_benchmark(value_parsing_benchmark)

cpp/src/gandiva/CMakeLists.txt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,10 +115,8 @@ set(GANDIVA_STATIC_LINK_LIBS
115115
LLVM::LLVM_LIBS
116116
${GANDIVA_OPENSSL_LIBS}
117117
Boost::headers)
118-
if(ARROW_USE_XSIMD)
119-
list(APPEND GANDIVA_SHARED_PRIVATE_LINK_LIBS ${ARROW_XSIMD})
120-
list(APPEND GANDIVA_STATIC_LINK_LIBS ${ARROW_XSIMD})
121-
endif()
118+
list(APPEND GANDIVA_SHARED_PRIVATE_LINK_LIBS ${ARROW_XSIMD})
119+
list(APPEND GANDIVA_STATIC_LINK_LIBS ${ARROW_XSIMD})
122120
if(ARROW_WITH_RE2)
123121
list(APPEND GANDIVA_SHARED_PRIVATE_LINK_LIBS re2::re2)
124122
list(APPEND GANDIVA_STATIC_LINK_LIBS re2::re2)

cpp/src/parquet/CMakeLists.txt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -228,11 +228,9 @@ endif()
228228
set(PARQUET_SHARED_LINK_LIBS)
229229
set(PARQUET_SHARED_PRIVATE_LINK_LIBS)
230230

231-
if(ARROW_USE_XSIMD)
232-
list(APPEND PARQUET_SHARED_LINK_LIBS ${ARROW_XSIMD})
233-
list(APPEND PARQUET_SHARED_PRIVATE_LINK_LIBS ${ARROW_XSIMD})
234-
list(APPEND PARQUET_STATIC_LINK_LIBS ${ARROW_XSIMD})
235-
endif()
231+
list(APPEND PARQUET_SHARED_LINK_LIBS ${ARROW_XSIMD})
232+
list(APPEND PARQUET_SHARED_PRIVATE_LINK_LIBS ${ARROW_XSIMD})
233+
list(APPEND PARQUET_STATIC_LINK_LIBS ${ARROW_XSIMD})
236234

237235
if(PARQUET_REQUIRE_ENCRYPTION)
238236
list(APPEND PARQUET_SHARED_PRIVATE_LINK_LIBS ${ARROW_OPENSSL_LIBS})

0 commit comments

Comments
 (0)