Blame SOURCES/0001-cpp.patch

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