From f9ba1bd9828fbc12a61a3645daf350fa5ec7ed24 Mon Sep 17 00:00:00 2001 From: mrdrivingduck Date: Wed, 18 Mar 2026 13:46:27 +0800 Subject: [PATCH] fix(cmake): patch Arrow for CMAKE_POLICY_VERSION_MINIMUM The existing EP_COMMON_CMAKE_ARGS fix (#175) covers direct dependencies, but Arrow internally builds its own sub-dependencies (e.g., brotli) via ExternalProject_Add. These sub-dependencies specify cmake_minimum_required(VERSION 2.8), which causes a fatal error on CMake >= 3.30. Patch Arrow's ThirdpartyToolchain.cmake to append -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to EP_COMMON_CMAKE_ARGS when CMake >= 3.30, ensuring all bundled sub-dependencies are configured successfully. Co-authored-by: Claude Sonnet 4.6 --- cmake_modules/arrow.diff | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/cmake_modules/arrow.diff b/cmake_modules/arrow.diff index 997cb6b3..e539d1f8 100644 --- a/cmake_modules/arrow.diff +++ b/cmake_modules/arrow.diff @@ -196,3 +196,18 @@ index 4d3acb491e..3906ff3c59 100644 int64_t pagesize_; ParquetDataPageVersion parquet_data_page_version_; ParquetVersion::type parquet_version_; +diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake +--- a/cpp/cmake_modules/ThirdpartyToolchain.cmake ++++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake +@@ -981,6 +981,11 @@ if(CMAKE_TOOLCHAIN_FILE) + list(APPEND EP_COMMON_CMAKE_ARGS -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}) + endif() + ++# Compatibility with bundled dependencies that require old CMake versions. ++if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.30") ++ list(APPEND EP_COMMON_CMAKE_ARGS -DCMAKE_POLICY_VERSION_MINIMUM=3.5) ++endif() ++ + # and crosscompiling emulator (for try_run() ) + if(CMAKE_CROSSCOMPILING_EMULATOR) + string(REPLACE ";" ${EP_LIST_SEPARATOR} EP_CMAKE_CROSSCOMPILING_EMULATOR