From 83c03ed0e448a0d975a5fe373377902ae219086d Mon Sep 17 00:00:00 2001 From: feihongxu0824 Date: Wed, 4 Mar 2026 11:19:10 +0800 Subject: [PATCH] chore(build): accelerate third-party downloads using OSS mirror URLs (#194) --- CMakeLists.txt | 7 +++++-- thirdparty/arrow/CMakeLists.txt | 17 ++++++++++++++++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 294af34..190a645 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,6 +28,9 @@ message(STATUS "BUILD_PYTHON_BINDINGS:${BUILD_PYTHON_BINDINGS}") option(BUILD_TOOLS "Build tools" ON) message(STATUS "BUILD_TOOLS:${BUILD_TOOLS}") +option(USE_OSS_MIRROR "Use OSS mirror for faster third-party downloads" ON) +message(STATUS "USE_OSS_MIRROR:${USE_OSS_MIRROR}") + cc_directory(thirdparty) cc_directories(src) cc_directories(tests) @@ -56,6 +59,6 @@ if(BUILD_PYTHON_BINDINGS) set(ZVEC_PY_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}") endif() - MESSAGE(STATUS "Zvec install path: ${ZVEC_PY_INSTALL_DIR}") + message(STATUS "Zvec install path: ${ZVEC_PY_INSTALL_DIR}") install(TARGETS _zvec LIBRARY DESTINATION ${ZVEC_PY_INSTALL_DIR}) -endif() +endif() \ No newline at end of file diff --git a/thirdparty/arrow/CMakeLists.txt b/thirdparty/arrow/CMakeLists.txt index eb8cad0..7d40658 100644 --- a/thirdparty/arrow/CMakeLists.txt +++ b/thirdparty/arrow/CMakeLists.txt @@ -14,12 +14,27 @@ set(LIB_ACERO ${EXTERNAL_LIB_DIR}/libarrow_acero.a) set(LIB_ARROW_DEPENDS ${EXTERNAL_LIB_DIR}/libarrow_bundled_dependencies.a) set(LIB_ARROW_DATASET ${EXTERNAL_LIB_DIR}/libarrow_dataset.a) +set(CONFIGURE_ENV_LIST "") +if(USE_OSS_MIRROR) + list(APPEND CONFIGURE_ENV_LIST + "ARROW_BOOST_URL=https://zvec.oss-cn-hongkong.aliyuncs.com/thirdparty/boost-1.88.0-cmake.tar.gz" + "ARROW_RAPIDJSON_URL=https://zvec.oss-cn-hongkong.aliyuncs.com/thirdparty/rapidjson-232389d4f1012dddec4ef84861face2d2ba85709.tar.gz" + "ARROW_RE2_URL=https://zvec.oss-cn-hongkong.aliyuncs.com/thirdparty/re2-2022-06-01.tar.gz" + "ARROW_THRIFT_URL=https://zvec.oss-cn-hongkong.aliyuncs.com/thirdparty/thrift-0.22.0.tar.gz" + "ARROW_UTF8PROC_URL=https://zvec.oss-cn-hongkong.aliyuncs.com/thirdparty/utf8proc-2.10.0.tar.gz" + "ARROW_XSIMD_URL=https://zvec.oss-cn-hongkong.aliyuncs.com/thirdparty/xsimd-13.0.0.tar.gz" + "ARROW_ZLIB_URL=https://zvec.oss-cn-hongkong.aliyuncs.com/thirdparty/zlib-1.3.1.tar.gz" + ) + message(STATUS "Using OSS mirror for third-party downloads") +endif() + + ExternalProject_Add( ARROW.BUILD PREFIX arrow SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/apache-arrow-21.0.0 DOWNLOAD_COMMAND "" BUILD_IN_SOURCE false - CONFIGURE_COMMAND "${CMAKE_COMMAND}" ${CMAKE_CACHE_ARGS} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_DEBUG_POSTFIX= -DARROW_BUILD_SHARED=OFF -DARROW_ACERO=ON -DARROW_FILESYSTEM=ON -DARROW_DATASET=ON -DARROW_PARQUET=ON -DARROW_COMPUTE=ON -DARROW_WITH_ZLIB=OFF -DARROW_DEPENDENCY_SOURCE=BUNDLED -DARROW_MIMALLOC=OFF -DCMAKE_INSTALL_LIBDIR=lib "/cpp" + CONFIGURE_COMMAND env ${CONFIGURE_ENV_LIST} "${CMAKE_COMMAND}" ${CMAKE_CACHE_ARGS} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_DEBUG_POSTFIX= -DARROW_BUILD_SHARED=OFF -DARROW_ACERO=ON -DARROW_FILESYSTEM=ON -DARROW_DATASET=ON -DARROW_PARQUET=ON -DARROW_COMPUTE=ON -DARROW_WITH_ZLIB=OFF -DARROW_DEPENDENCY_SOURCE=BUNDLED -DARROW_MIMALLOC=OFF -DCMAKE_INSTALL_LIBDIR=lib "/cpp" BUILD_COMMAND "${CMAKE_COMMAND}" --build . --target all -- -j ${NPROC} INSTALL_COMMAND "${CMAKE_COMMAND}" --install "" --prefix=${EXTERNAL_BINARY_DIR}/usr/local BYPRODUCTS ${LIB_PARQUET} ${LIB_ARROW} ${LIB_COMPUTE} ${LIB_ACERO} ${LIB_ARROW_DEPENDS} ${LIB_ARROW_DATASET}