--- apache-arrow-4.0.1/cpp/thirdparty/versions.txt.orig 2021-08-24 17:49:59.451872173 -0400
+++ apache-arrow-4.0.1/cpp/thirdparty/versions.txt 2021-08-24 17:50:08.734720962 -0400
@@ -36,7 +36,7 @@
ARROW_GBENCHMARK_BUILD_VERSION=v1.5.2
ARROW_GFLAGS_BUILD_VERSION=v2.2.2
ARROW_GLOG_BUILD_VERSION=v0.4.0
-ARROW_GRPC_BUILD_VERSION=v1.35.0
+ARROW_GRPC_BUILD_VERSION=v1.26.0
ARROW_GTEST_BUILD_VERSION=1.10.0
ARROW_JEMALLOC_BUILD_VERSION=5.2.1
ARROW_LZ4_BUILD_VERSION=v1.9.3
--- apache-arrow-4.0.1/cpp/cmake_modules/ThirdpartyToolchain.cmake.orig 2021-05-18 23:53:20.000000000 -0400
+++ apache-arrow-4.0.1/cpp/cmake_modules/ThirdpartyToolchain.cmake 2021-09-16 07:20:52.776270833 -0400
@@ -1104,8 +1104,8 @@
set(GLOG_CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
set(GLOG_CMAKE_C_FLAGS "${EP_C_FLAGS} -fPIC")
if(Threads::Threads)
- set(GLOG_CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -pthread")
- set(GLOG_CMAKE_C_FLAGS "${EP_C_FLAGS} -fPIC -pthread")
+ set(GLOG_CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -pthread -lpthread")
+ set(GLOG_CMAKE_C_FLAGS "${EP_C_FLAGS} -fPIC -pthread -lpthread")
endif()
if(APPLE)
@@ -1920,29 +1920,82 @@
endif()
macro(build_xsimd)
- message(STATUS "Building xsimd from source")
- set(XSIMD_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/xsimd_ep/src/xsimd_ep-install")
- set(XSIMD_CMAKE_ARGS ${EP_COMMON_CMAKE_ARGS} "-DCMAKE_INSTALL_PREFIX=${XSIMD_PREFIX}")
+ message(STATUS "Building xsimdxx from source")
+ set(ZSTD_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/xsimd_ep-install")
+
+ set(XSIMD_CMAKE_ARGS
+ ${EP_COMMON_TOOLCHAIN}
+ "-DCMAKE_INSTALL_PREFIX=${XSIMD_PREFIX}"
+ -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+ -DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR}
+ -DXSIMD_BUILD_PROGRAMS=off
+ -DXSIMD_BUILD_SHARED=off
+ -DXSIMD_BUILD_STATIC=on
+ -DXSIMD_MULTITHREAD_SUPPORT=off)
+
+ if(MSVC)
+ set(XSIMD_STATIC_LIB "${XSIMD_PREFIX}/${CMAKE_INSTALL_LIBDIR}/xsimd_static.lib")
+ if(ARROW_USE_STATIC_CRT)
+ set(XSIMD_CMAKE_ARGS ${XSIMD_CMAKE_ARGS} "-DXSIMD_USE_STATIC_RUNTIME=on")
+ endif()
+ else()
+ # Only pass our C flags on Unix as on MSVC it leads to a
+ # "incompatible command-line options" error
+ set(XSIMD_CMAKE_ARGS
+ ${XSIMD_CMAKE_ARGS}
+ -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+ -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
+ -DCMAKE_C_FLAGS=${EP_C_FLAGS}
+ -DCMAKE_CXX_FLAGS=${EP_CXX_FLAGS})
+ endif()
+
+ if(CMAKE_VERSION VERSION_LESS 3.7)
+ message(FATAL_ERROR "Building xsimd using ExternalProject requires at least CMake 3.7")
+ endif()
externalproject_add(xsimd_ep
${EP_LOG_OPTIONS}
- PREFIX "${CMAKE_BINARY_DIR}"
+ CMAKE_ARGS ${XSIMD_CMAKE_ARGS}
+ SOURCE_SUBDIR "build/cmake"
+ INSTALL_DIR ${XSIMD_PREFIX}
URL ${XSIMD_SOURCE_URL}
- CMAKE_ARGS ${XSIMD_CMAKE_ARGS})
+ BUILD_BYPRODUCTS "${XSIMD_STATIC_LIB}")
- set(XSIMD_INCLUDE_DIR "${XSIMD_PREFIX}/include")
+ file(MAKE_DIRECTORY "${XSIMD_PREFIX}/include")
+
+ add_library(xsimd::libxsimd STATIC IMPORTED)
+ set_target_properties(xsimd::libxsimd
+ PROPERTIES IMPORTED_LOCATION "${XSIMD_STATIC_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${XSIMD_PREFIX}/include")
add_dependencies(toolchain xsimd_ep)
- add_dependencies(toolchain-tests xsimd_ep)
+ add_dependencies(xsimd::libxsimd xsimd_ep)
- set(XSIMD_VENDORED TRUE)
+ list(APPEND ARROW_BUNDLED_STATIC_LIBS xsimd::libxsimd)
endmacro()
-if((NOT ARROW_SIMD_LEVEL STREQUAL "NONE")
- OR (NOT ARROW_RUNTIME_SIMD_LEVEL STREQUAL "NONE"))
- set(xsimd_SOURCE "BUNDLED")
+if(ARROW_WITH_XSIMD)
resolve_dependency(xsimd)
+
+ if(TARGET xsimd::libxsimd)
+ set(ARROW_XSIMD_LIBXSIMD xsimd::libxsimd)
+ else()
+ # "SYSTEM" source will prioritize cmake config, which exports
+ # xsimd::libxsimd_{static,shared}
+ if(ARROW_XSIMD_USE_SHARED)
+ if(TARGET xsimd::libxsimd_shared)
+ set(ARROW_XSIMD_LIBXSIMD xsimd::libxsimd_shared)
+ endif()
+ else()
+ if(TARGET xsimd::libxsimd_static)
+ set(ARROW_XSIMD_LIBXSIMD xsimd::libxsimd_static)
+ endif()
+ endif()
+ endif()
+
# TODO: Don't use global includes but rather target_include_directories
+ get_target_property(XSIMD_INCLUDE_DIR ${ARROW_XSIMD_LIBXSIMD}
+ INTERFACE_INCLUDE_DIRECTORIES)
include_directories(SYSTEM ${XSIMD_INCLUDE_DIR})
endif()
@@ -2612,12 +2665,7 @@
endmacro()
if(ARROW_WITH_GRPC)
- set(ARROW_GRPC_REQUIRED_VERSION "1.17.0")
- resolve_dependency(gRPC
- HAVE_ALT
- TRUE
- REQUIRED_VERSION
- ${ARROW_GRPC_REQUIRED_VERSION})
+ resolve_dependency(gRPC REQUIRED_VERSION 1.17.0)
# TODO: Don't use global includes but rather target_include_directories
get_target_property(GRPC_INCLUDE_DIR gRPC::grpc++ INTERFACE_INCLUDE_DIRECTORIES)
--- apache-arrow-4.0.1/cpp/CMakeLists.txt.orig 2021-08-26 14:32:40.450321244 -0400
+++ apache-arrow-4.0.1/cpp/CMakeLists.txt 2021-08-26 14:33:52.822138398 -0400
@@ -751,6 +751,12 @@
endif()
endif()
+if(ARROW_WITH_XSIMD)
+ if(xsimd_SOURCE STREQUAL "SYSTEM")
+ list(APPEND ARROW_STATIC_INSTALL_INTERFACE_LIBS xsimd::xsimd)
+ endif()
+endif()
+
add_custom_target(arrow_dependencies)
add_custom_target(arrow_benchmark_dependencies)
add_custom_target(arrow_test_dependencies)