Skip to content

Commit 5696212

Browse files
authored
Fix CMake 4 support by patching arrow on download (#11223)
1 parent 1470937 commit 5696212

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

rerun_cpp/download_and_build_arrow.cmake

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ function(download_and_build_arrow)
8181
set(VERSION_PATCH "-DCMAKE_POLICY_VERSION_MINIMUM=${CMAKE_POLICY_VERSION_MINIMUM}")
8282
endif()
8383

84+
set(MIMALLOC_PATCH ${CMAKE_CURRENT_LIST_DIR}/patches/mimalloc_cmake4.patch)
85+
8486
ExternalProject_Add(
8587
arrow_cpp
8688
PREFIX ${ARROW_DOWNLOAD_PATH}
@@ -90,6 +92,10 @@ function(download_and_build_arrow)
9092
GIT_PROGRESS OFF # Git progress sounds like a nice idea but is in practice very spammy.
9193
UPDATE_COMMAND "" # Prevent unnecessary rebuilds on every cmake --build
9294

95+
# Apply patch after checkout but before configure
96+
# TODO(apache/arrow#45985): Arrow can't support CMake 4.0 yet
97+
PATCH_COMMAND git apply --check ${MIMALLOC_PATCH} && git apply ${MIMALLOC_PATCH} || true
98+
9399
# LOG_X ON means that the output of the command will
94100
# be logged to a file _instead_ of printed to the console.
95101
LOG_CONFIGURE ON
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake
2+
index db151b4e0f..5127744637 100644
3+
--- a/cpp/cmake_modules/ThirdpartyToolchain.cmake
4+
+++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake
5+
@@ -2254,6 +2254,13 @@ if(ARROW_MIMALLOC)
6+
"${MIMALLOC_PREFIX}/lib/mimalloc-2.0/${CMAKE_STATIC_LIBRARY_PREFIX}${MIMALLOC_LIB_BASE_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}"
7+
)
8+
9+
+ if (CMAKE_POLICY_VERSION_MINIMUM)
10+
+ set(MIMALLOC_POLICY_ARGS
11+
+ -DCMAKE_POLICY_VERSION_MINIMUM=${CMAKE_POLICY_VERSION_MINIMUM})
12+
+ else()
13+
+ set(MIMALLOC_POLICY_ARGS "")
14+
+ endif()
15+
+
16+
set(MIMALLOC_CMAKE_ARGS
17+
${EP_COMMON_CMAKE_ARGS}
18+
"-DCMAKE_INSTALL_PREFIX=${MIMALLOC_PREFIX}"
19+
@@ -2261,7 +2268,9 @@ if(ARROW_MIMALLOC)
20+
-DMI_LOCAL_DYNAMIC_TLS=ON
21+
-DMI_BUILD_OBJECT=OFF
22+
-DMI_BUILD_SHARED=OFF
23+
- -DMI_BUILD_TESTS=OFF)
24+
+ -DMI_BUILD_TESTS=OFF
25+
+ ${MIMALLOC_POLICY_ARGS}
26+
+ )
27+
28+
externalproject_add(mimalloc_ep
29+
${EP_COMMON_OPTIONS}

0 commit comments

Comments
 (0)