@@ -19,13 +19,6 @@ if(VELOX_ENABLE_ARROW)
1919 else ()
2020 set (THRIFT_SOURCE "BUNDLED" )
2121 endif ()
22- # Apache Arrow 21.0.0 uses archive.apache.org as the default mirror, which
23- # tends to timeout in CI. We don't need to explicitly set this alternate
24- # mirror after the 22.0.0 release because this will be used by default. See
25- # also: https://github.com/apache/arrow/issues/47111
26- set (THRIFT_URL
27- "https://packages.apache.org/artifactory/arrow/thirdparty/thrift-0.22.0.tar.gz"
28- )
2922
3023 set (ARROW_PREFIX "${CMAKE_CURRENT_BINARY_DIR} /arrow_ep" )
3124 set (ARROW_CMAKE_ARGS
@@ -37,39 +30,38 @@ if(VELOX_ENABLE_ARROW)
3730 -DARROW_WITH_ZLIB=ON
3831 -DARROW_WITH_ZSTD=ON
3932 -DARROW_JEMALLOC=OFF
40- -DARROW_MIMALLOC=OFF
4133 -DARROW_SIMD_LEVEL=NONE
4234 -DARROW_RUNTIME_SIMD_LEVEL=NONE
4335 -DARROW_WITH_UTF8PROC=OFF
4436 -DARROW_TESTING=ON
4537 -DCMAKE_INSTALL_PREFIX=${ARROW_PREFIX} /install
4638 -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
47- -DCMAKE_DEBUG_POSTFIX =
4839 -DARROW_BUILD_STATIC=ON
4940 -DThrift_SOURCE=${THRIFT_SOURCE}
50- -DARROW_THRIFT_BUILD_SHA256_CHECKSUM=${THRIFT_BUILD_SHA256_CHECKSUM}
51- -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH} )
41+ -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}
42+ -DCMAKE_POLICY_VERSION_MINIMUM=3.5
43+ # Remove with Arrow upgrade to Arrow 20.
44+ -DARROW_CXXFLAGS=-Wno-documentation)
5245 set (ARROW_LIBDIR ${ARROW_PREFIX} /install/${CMAKE_INSTALL_LIBDIR} )
5346
5447 add_library (thrift STATIC IMPORTED GLOBAL )
5548 if (NOT Thrift_FOUND)
56- set (THRIFT_SOURCE_ROOT ${ARROW_PREFIX} /src/arrow_ep-build/_deps/thrift-src)
57- set (THRIFT_BUILD_ROOT ${ARROW_PREFIX} /src/arrow_ep-build/_deps/thrift-build)
58- set (THRIFT_INCLUDE_DIR ${THRIFT_BUILD_ROOT}
59- ${THRIFT_SOURCE_ROOT} /lib/cpp/src)
60- foreach (dir ${THRIFT_INCLUDE_DIR} )
61- file (MAKE_DIRECTORY ${dir} )
62- endforeach ()
63- set (THRIFT_LIB ${ARROW_PREFIX} /src/arrow_ep-build/lib/libthrift.a)
49+ set (THRIFT_ROOT ${ARROW_PREFIX} /src/arrow_ep-build/thrift_ep-install)
50+ set (THRIFT_LIB ${THRIFT_ROOT} /lib/libthrift.a)
51+
52+ file (MAKE_DIRECTORY ${THRIFT_ROOT} /include )
53+ set (THRIFT_INCLUDE_DIR ${THRIFT_ROOT} /include)
6454 endif ()
65- target_include_directories (thrift INTERFACE ${THRIFT_INCLUDE_DIR} )
55+
56+ set_property (TARGET thrift PROPERTY INTERFACE_INCLUDE_DIRECTORIES
57+ ${THRIFT_INCLUDE_DIR} )
6658 set_property (TARGET thrift PROPERTY IMPORTED_LOCATION ${THRIFT_LIB} )
6759
68- set (VELOX_ARROW_BUILD_VERSION 21 .0.0)
60+ set (VELOX_ARROW_BUILD_VERSION 15 .0.0)
6961 set (VELOX_ARROW_BUILD_SHA256_CHECKSUM
70- 5d3f8db7e72fb9f65f4785b7a1634522e8d8e9657a445af53d4a34a3849857b5 )
62+ ab74c60c46938505c8cd7599b1d2826c68450645d5860d0ff40f67e371a5d0b5 )
7163 set (VELOX_ARROW_SOURCE_URL
72- "https://github.com/apache/arrow/releases/download/apache-arrow- ${VELOX_ARROW_BUILD_VERSION} /apache-arrow-${VELOX_ARROW_BUILD_VERSION} .tar.gz"
64+ "https://github.com/apache/arrow/archive/refs/tags /apache-arrow-${VELOX_ARROW_BUILD_VERSION} .tar.gz"
7365 )
7466
7567 velox_resolve_dependency_url (ARROW )
@@ -80,19 +72,11 @@ if(VELOX_ENABLE_ARROW)
8072 URL ${VELOX_ARROW_SOURCE_URL}
8173 URL_HASH ${VELOX_ARROW_BUILD_SHA256_CHECKSUM}
8274 SOURCE_SUBDIR cpp
83- # We can't change ARROW_THRIFT_URL by CMake variable. We need to use
84- # environment variable. So we use "cmake -E env ARROW_THRIFT_URL=..." here.
85- # We can remove this when we use Apache Arrow C++ 22.0.0 or later. See also
86- # the above comment THRIFT_URL.
87- CMAKE_COMMAND ${CMAKE_COMMAND}
88- -E
89- env
90- ARROW_THRIFT_URL=${THRIFT_URL}
91- --
92- ${CMAKE_COMMAND}
9375 CMAKE_ARGS ${ARROW_CMAKE_ARGS}
9476 BUILD_BYPRODUCTS ${ARROW_LIBDIR} /libarrow.a
95- ${ARROW_LIBDIR} /libarrow_testing.a ${THRIFT_LIB} )
77+ ${ARROW_LIBDIR} /libarrow_testing.a ${THRIFT_LIB}
78+ PATCH_COMMAND git apply ${CMAKE_CURRENT_LIST_DIR} /thrift-download.patch &&
79+ git apply ${CMAKE_CURRENT_LIST_DIR} /cmake-compatibility.patch)
9680
9781 add_library (arrow STATIC IMPORTED GLOBAL )
9882 add_library (arrow_testing STATIC IMPORTED GLOBAL )
@@ -108,4 +92,5 @@ if(VELOX_ENABLE_ARROW)
10892 set_target_properties (
10993 arrow_testing PROPERTIES IMPORTED_LOCATION
11094 ${ARROW_LIBDIR} /libarrow_testing.a )
95+
11196endif ()
0 commit comments