diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a354d764587..bf90a92b07a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -300,6 +300,7 @@ repos: ?^ci/scripts/ccache_setup\.sh$| ?^ci/scripts/conan_build\.sh$| ?^ci/scripts/conan_setup\.sh$| + ?^ci/scripts/cpp_build\.sh$| ?^ci/scripts/cpp_test\.sh$| ?^ci/scripts/download_tz_database\.sh$| ?^ci/scripts/install_azurite\.sh$| diff --git a/ci/scripts/cpp_build.sh b/ci/scripts/cpp_build.sh index 2f02f8c1496..a966c1e7328 100755 --- a/ci/scripts/cpp_build.sh +++ b/ci/scripts/cpp_build.sh @@ -22,16 +22,16 @@ set -ex source_dir=${1}/cpp build_dir=${2}/cpp -: ${ARROW_OFFLINE:=OFF} -: ${ARROW_USE_CCACHE:=OFF} -: ${BUILD_DOCS_CPP:=OFF} +: "${ARROW_OFFLINE:=OFF}" +: "${ARROW_USE_CCACHE:=OFF}" +: "${BUILD_DOCS_CPP:=OFF}" if [ -x "$(command -v git)" ]; then - git config --global --add safe.directory ${1} + git config --global --add safe.directory "${1}" fi # TODO(kszucs): consider to move these to CMake -if [ ! -z "${CONDA_PREFIX}" ] && [ "${ARROW_EMSCRIPTEN:-OFF}" = "OFF" ]; then +if [ -n "${CONDA_PREFIX}" ] && [ "${ARROW_EMSCRIPTEN:-OFF}" = "OFF" ]; then echo -e "===\n=== Conda environment for build\n===" conda list @@ -42,17 +42,19 @@ if [ ! -z "${CONDA_PREFIX}" ] && [ "${ARROW_EMSCRIPTEN:-OFF}" = "OFF" ]; then ARROW_CMAKE_ARGS+=" -DCMAKE_RANLIB=${RANLIB}" fi export ARROW_CMAKE_ARGS - export ARROW_GANDIVA_PC_CXX_FLAGS=$(echo | ${CXX} -E -Wp,-v -xc++ - 2>&1 | grep '^ ' | awk '{print "-isystem;" substr($1, 1)}' | tr '\n' ';') + ARROW_GANDIVA_PC_CXX_FLAGS=$(echo | ${CXX} -E -Wp,-v -xc++ - 2>&1 | grep '^ ' | awk '{print "-isystem;" substr($1, 1)}' | tr '\n' ';') + export ARROW_GANDIVA_PC_CXX_FLAGS elif [ -x "$(command -v xcrun)" ]; then - export ARROW_GANDIVA_PC_CXX_FLAGS="-isysroot;$(xcrun --show-sdk-path)" + ARROW_GANDIVA_PC_CXX_FLAGS="-isysroot;$(xcrun --show-sdk-path)" + export ARROW_GANDIVA_PC_CXX_FLAGS fi if [ "${GITHUB_ACTIONS:-false}" = "true" ]; then case "$(uname)" in Linux|Darwin|MINGW*) if [ "${ARROW_GDB:-OFF}" != "ON" ]; then - : ${ARROW_C_FLAGS_DEBUG:=-g1} - : ${ARROW_CXX_FLAGS_DEBUG:=-g1} + : "${ARROW_C_FLAGS_DEBUG:=-g1}" + : "${ARROW_CXX_FLAGS_DEBUG:=-g1}" fi ;; *) @@ -97,12 +99,13 @@ case "$(uname)" in ;; esac -mkdir -p ${build_dir} -pushd ${build_dir} +mkdir -p "${build_dir}" +pushd "${build_dir}" if [ "${ARROW_OFFLINE}" = "ON" ]; then - ${source_dir}/thirdparty/download_dependencies.sh ${PWD}/thirdparty > \ + "${source_dir}"/thirdparty/download_dependencies.sh "${PWD}"/thirdparty > \ enable_offline_build.sh + # shellcheck source=/dev/null . enable_offline_build.sh # We can't use mv because we can't remove /etc/resolv.conf in Docker # container. @@ -141,156 +144,158 @@ if [ "${ARROW_USE_MESON:-OFF}" = "ON" ]; then fi fi meson setup \ - --prefix=${MESON_PREFIX:-${ARROW_HOME}} \ - --buildtype=${ARROW_BUILD_TYPE:-debug} \ + --prefix="${MESON_PREFIX:-${ARROW_HOME}}" \ + --buildtype="${ARROW_BUILD_TYPE:-debug}" \ --pkg-config-path="${CONDA_PREFIX}/lib/pkgconfig/" \ -Dauto_features=enabled \ -Dfuzzing=disabled \ -Ds3=disabled \ . \ - ${source_dir} + "${source_dir}" CC="${ORIGINAL_CC}" CXX="${ORIGINAL_CXX}" elif [ "${ARROW_EMSCRIPTEN:-OFF}" = "ON" ]; then if [ "${UBUNTU}" = "20.04" ]; then echo "arrow emscripten build is not supported on Ubuntu 20.04, run with UBUNTU=22.04" - exit -1 + exit 1 fi n_jobs=2 # Emscripten build fails on docker unless this is set really low + # shellcheck source=/dev/null source ~/emsdk/emsdk_env.sh - export CMAKE_INSTALL_PREFIX=$(em-config CACHE)/sysroot + CMAKE_INSTALL_PREFIX=$(em-config CACHE)/sysroot + export CMAKE_INSTALL_PREFIX # conda sets LDFLAGS / CFLAGS etc. which break # emcmake so we unset them unset LDFLAGS CFLAGS CXXFLAGS CPPFLAGS emcmake cmake \ - --preset=ninja-${ARROW_BUILD_TYPE:-debug}-emscripten \ - -DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE_MAKEFILE:-OFF} \ + --preset=ninja-"${ARROW_BUILD_TYPE:-debug}"-emscripten \ + -DCMAKE_VERBOSE_MAKEFILE="${CMAKE_VERBOSE_MAKEFILE:-OFF}" \ -DCMAKE_C_FLAGS="${CFLAGS:-}" \ -DCMAKE_CXX_FLAGS="${CXXFLAGS:-}" \ -DCMAKE_CXX_STANDARD="${CMAKE_CXX_STANDARD:-17}" \ - -DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR:-lib} \ - -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX:-${ARROW_HOME}} \ - -DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD:-OFF} \ - ${ARROW_CMAKE_ARGS} \ - ${source_dir} + -DCMAKE_INSTALL_LIBDIR="${CMAKE_INSTALL_LIBDIR:-lib}" \ + -DCMAKE_INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX:-${ARROW_HOME}}" \ + -DCMAKE_UNITY_BUILD="${CMAKE_UNITY_BUILD:-OFF}" \ + "${ARROW_CMAKE_ARGS}" \ + "${source_dir}" elif [ -n "${CMAKE_PRESET}" ]; then cmake \ --preset="${CMAKE_PRESET}" \ - ${ARROW_CMAKE_ARGS} \ - ${source_dir} + "${ARROW_CMAKE_ARGS}" \ + "${source_dir}" else cmake \ - -Dabsl_SOURCE=${absl_SOURCE:-} \ - -DARROW_ACERO=${ARROW_ACERO:-OFF} \ - -DARROW_AZURE=${ARROW_AZURE:-OFF} \ - -DARROW_BOOST_USE_SHARED=${ARROW_BOOST_USE_SHARED:-ON} \ - -DARROW_BUILD_BENCHMARKS_REFERENCE=${ARROW_BUILD_BENCHMARKS:-OFF} \ - -DARROW_BUILD_BENCHMARKS=${ARROW_BUILD_BENCHMARKS:-OFF} \ - -DARROW_BUILD_EXAMPLES=${ARROW_BUILD_EXAMPLES:-OFF} \ - -DARROW_BUILD_INTEGRATION=${ARROW_BUILD_INTEGRATION:-OFF} \ - -DARROW_BUILD_SHARED=${ARROW_BUILD_SHARED:-ON} \ - -DARROW_BUILD_STATIC=${ARROW_BUILD_STATIC:-ON} \ - -DARROW_BUILD_TESTS=${ARROW_BUILD_TESTS:-OFF} \ - -DARROW_BUILD_UTILITIES=${ARROW_BUILD_UTILITIES:-ON} \ - -DARROW_COMPUTE=${ARROW_COMPUTE:-ON} \ - -DARROW_CSV=${ARROW_CSV:-ON} \ - -DARROW_CUDA=${ARROW_CUDA:-OFF} \ - -DARROW_CXXFLAGS=${ARROW_CXXFLAGS:-} \ + -Dabsl_SOURCE="${absl_SOURCE:-}" \ + -DARROW_ACERO="${ARROW_ACERO:-OFF}" \ + -DARROW_AZURE="${ARROW_AZURE:-OFF}" \ + -DARROW_BOOST_USE_SHARED="${ARROW_BOOST_USE_SHARED:-ON}" \ + -DARROW_BUILD_BENCHMARKS_REFERENCE="${ARROW_BUILD_BENCHMARKS:-OFF}" \ + -DARROW_BUILD_BENCHMARKS="${ARROW_BUILD_BENCHMARKS:-OFF}" \ + -DARROW_BUILD_EXAMPLES="${ARROW_BUILD_EXAMPLES:-OFF}" \ + -DARROW_BUILD_INTEGRATION="${ARROW_BUILD_INTEGRATION:-OFF}" \ + -DARROW_BUILD_SHARED="${ARROW_BUILD_SHARED:-ON}" \ + -DARROW_BUILD_STATIC="${ARROW_BUILD_STATIC:-ON}" \ + -DARROW_BUILD_TESTS="${ARROW_BUILD_TESTS:-OFF}" \ + -DARROW_BUILD_UTILITIES="${ARROW_BUILD_UTILITIES:-ON}" \ + -DARROW_COMPUTE="${ARROW_COMPUTE:-ON}" \ + -DARROW_CSV="${ARROW_CSV:-ON}" \ + -DARROW_CUDA="${ARROW_CUDA:-OFF}" \ + -DARROW_CXXFLAGS="${ARROW_CXXFLAGS:-}" \ -DARROW_CXX_FLAGS_DEBUG="${ARROW_CXX_FLAGS_DEBUG:-}" \ -DARROW_CXX_FLAGS_RELEASE="${ARROW_CXX_FLAGS_RELEASE:-}" \ -DARROW_CXX_FLAGS_RELWITHDEBINFO="${ARROW_CXX_FLAGS_RELWITHDEBINFO:-}" \ -DARROW_C_FLAGS_DEBUG="${ARROW_C_FLAGS_DEBUG:-}" \ -DARROW_C_FLAGS_RELEASE="${ARROW_C_FLAGS_RELEASE:-}" \ -DARROW_C_FLAGS_RELWITHDEBINFO="${ARROW_C_FLAGS_RELWITHDEBINFO:-}" \ - -DARROW_DATASET=${ARROW_DATASET:-OFF} \ - -DARROW_DEPENDENCY_SOURCE=${ARROW_DEPENDENCY_SOURCE:-AUTO} \ - -DARROW_DEPENDENCY_USE_SHARED=${ARROW_DEPENDENCY_USE_SHARED:-ON} \ - -DARROW_ENABLE_THREADING=${ARROW_ENABLE_THREADING:-ON} \ - -DARROW_ENABLE_TIMING_TESTS=${ARROW_ENABLE_TIMING_TESTS:-ON} \ - -DARROW_EXTRA_ERROR_CONTEXT=${ARROW_EXTRA_ERROR_CONTEXT:-OFF} \ - -DARROW_FILESYSTEM=${ARROW_FILESYSTEM:-ON} \ - -DARROW_FLIGHT=${ARROW_FLIGHT:-OFF} \ - -DARROW_FLIGHT_SQL=${ARROW_FLIGHT_SQL:-OFF} \ - -DARROW_FLIGHT_SQL_ODBC=${ARROW_FLIGHT_SQL_ODBC:-OFF} \ - -DARROW_FUZZING=${ARROW_FUZZING:-OFF} \ - -DARROW_GANDIVA_PC_CXX_FLAGS=${ARROW_GANDIVA_PC_CXX_FLAGS:-} \ - -DARROW_GANDIVA=${ARROW_GANDIVA:-OFF} \ - -DARROW_GCS=${ARROW_GCS:-OFF} \ - -DARROW_HDFS=${ARROW_HDFS:-ON} \ - -DARROW_INSTALL_NAME_RPATH=${ARROW_INSTALL_NAME_RPATH:-ON} \ - -DARROW_JEMALLOC=${ARROW_JEMALLOC:-OFF} \ - -DARROW_JSON=${ARROW_JSON:-ON} \ - -DARROW_LARGE_MEMORY_TESTS=${ARROW_LARGE_MEMORY_TESTS:-OFF} \ - -DARROW_MIMALLOC=${ARROW_MIMALLOC:-ON} \ - -DARROW_ORC=${ARROW_ORC:-OFF} \ - -DARROW_PARQUET=${ARROW_PARQUET:-OFF} \ - -DARROW_RUNTIME_SIMD_LEVEL=${ARROW_RUNTIME_SIMD_LEVEL:-MAX} \ - -DARROW_S3=${ARROW_S3:-OFF} \ - -DARROW_SIMD_LEVEL=${ARROW_SIMD_LEVEL:-DEFAULT} \ - -DARROW_SUBSTRAIT=${ARROW_SUBSTRAIT:-OFF} \ - -DARROW_TEST_LINKAGE=${ARROW_TEST_LINKAGE:-shared} \ - -DARROW_TEST_MEMCHECK=${ARROW_TEST_MEMCHECK:-OFF} \ - -DARROW_USE_ASAN=${ARROW_USE_ASAN:-OFF} \ - -DARROW_USE_CCACHE=${ARROW_USE_CCACHE:-ON} \ - -DARROW_USE_GLOG=${ARROW_USE_GLOG:-OFF} \ - -DARROW_USE_LLD=${ARROW_USE_LLD:-OFF} \ - -DARROW_USE_MOLD=${ARROW_USE_MOLD:-OFF} \ - -DARROW_USE_STATIC_CRT=${ARROW_USE_STATIC_CRT:-OFF} \ - -DARROW_USE_TSAN=${ARROW_USE_TSAN:-OFF} \ - -DARROW_USE_UBSAN=${ARROW_USE_UBSAN:-OFF} \ - -DARROW_VERBOSE_THIRDPARTY_BUILD=${ARROW_VERBOSE_THIRDPARTY_BUILD:-OFF} \ - -DARROW_WITH_BROTLI=${ARROW_WITH_BROTLI:-OFF} \ - -DARROW_WITH_BZ2=${ARROW_WITH_BZ2:-OFF} \ - -DARROW_WITH_LZ4=${ARROW_WITH_LZ4:-OFF} \ - -DARROW_WITH_OPENTELEMETRY=${ARROW_WITH_OPENTELEMETRY:-OFF} \ - -DARROW_WITH_MUSL=${ARROW_WITH_MUSL:-OFF} \ - -DARROW_WITH_SNAPPY=${ARROW_WITH_SNAPPY:-OFF} \ - -DARROW_WITH_UTF8PROC=${ARROW_WITH_UTF8PROC:-ON} \ - -DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB:-OFF} \ - -DARROW_WITH_ZSTD=${ARROW_WITH_ZSTD:-OFF} \ - -DAWSSDK_SOURCE=${AWSSDK_SOURCE:-} \ - -DAzure_SOURCE=${Azure_SOURCE:-} \ - -Dbenchmark_SOURCE=${benchmark_SOURCE:-} \ - -DBOOST_SOURCE=${BOOST_SOURCE:-} \ - -DBrotli_SOURCE=${Brotli_SOURCE:-} \ - -DBUILD_WARNING_LEVEL=${BUILD_WARNING_LEVEL:-CHECKIN} \ - -Dc-ares_SOURCE=${cares_SOURCE:-} \ - -DCMAKE_BUILD_TYPE=${ARROW_BUILD_TYPE:-debug} \ - -DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE_MAKEFILE:-OFF} \ + -DARROW_DATASET="${ARROW_DATASET:-OFF}" \ + -DARROW_DEPENDENCY_SOURCE="${ARROW_DEPENDENCY_SOURCE:-AUTO}" \ + -DARROW_DEPENDENCY_USE_SHARED="${ARROW_DEPENDENCY_USE_SHARED:-ON}" \ + -DARROW_ENABLE_THREADING="${ARROW_ENABLE_THREADING:-ON}" \ + -DARROW_ENABLE_TIMING_TESTS="${ARROW_ENABLE_TIMING_TESTS:-ON}" \ + -DARROW_EXTRA_ERROR_CONTEXT="${ARROW_EXTRA_ERROR_CONTEXT:-OFF}" \ + -DARROW_FILESYSTEM="${ARROW_FILESYSTEM:-ON}" \ + -DARROW_FLIGHT="${ARROW_FLIGHT:-OFF}" \ + -DARROW_FLIGHT_SQL="${ARROW_FLIGHT_SQL:-OFF}" \ + -DARROW_FLIGHT_SQL_ODBC="${ARROW_FLIGHT_SQL_ODBC:-OFF}" \ + -DARROW_FUZZING="${ARROW_FUZZING:-OFF}" \ + -DARROW_GANDIVA_PC_CXX_FLAGS="${ARROW_GANDIVA_PC_CXX_FLAGS:-}" \ + -DARROW_GANDIVA="${ARROW_GANDIVA:-OFF}" \ + -DARROW_GCS="${ARROW_GCS:-OFF}" \ + -DARROW_HDFS="${ARROW_HDFS:-ON}" \ + -DARROW_INSTALL_NAME_RPATH="${ARROW_INSTALL_NAME_RPATH:-ON}" \ + -DARROW_JEMALLOC="${ARROW_JEMALLOC:-OFF}" \ + -DARROW_JSON="${ARROW_JSON:-ON}" \ + -DARROW_LARGE_MEMORY_TESTS="${ARROW_LARGE_MEMORY_TESTS:-OFF}" \ + -DARROW_MIMALLOC="${ARROW_MIMALLOC:-ON}" \ + -DARROW_ORC="${ARROW_ORC:-OFF}" \ + -DARROW_PARQUET="${ARROW_PARQUET:-OFF}" \ + -DARROW_RUNTIME_SIMD_LEVEL="${ARROW_RUNTIME_SIMD_LEVEL:-MAX}" \ + -DARROW_S3="${ARROW_S3:-OFF}" \ + -DARROW_SIMD_LEVEL="${ARROW_SIMD_LEVEL:-DEFAULT}" \ + -DARROW_SUBSTRAIT="${ARROW_SUBSTRAIT:-OFF}" \ + -DARROW_TEST_LINKAGE="${ARROW_TEST_LINKAGE:-shared}" \ + -DARROW_TEST_MEMCHECK="${ARROW_TEST_MEMCHECK:-OFF}" \ + -DARROW_USE_ASAN="${ARROW_USE_ASAN:-OFF}" \ + -DARROW_USE_CCACHE="${ARROW_USE_CCACHE:-ON}" \ + -DARROW_USE_GLOG="${ARROW_USE_GLOG:-OFF}" \ + -DARROW_USE_LLD="${ARROW_USE_LLD:-OFF}" \ + -DARROW_USE_MOLD="${ARROW_USE_MOLD:-OFF}" \ + -DARROW_USE_STATIC_CRT="${ARROW_USE_STATIC_CRT:-OFF}" \ + -DARROW_USE_TSAN="${ARROW_USE_TSAN:-OFF}" \ + -DARROW_USE_UBSAN="${ARROW_USE_UBSAN:-OFF}" \ + -DARROW_VERBOSE_THIRDPARTY_BUILD="${ARROW_VERBOSE_THIRDPARTY_BUILD:-OFF}" \ + -DARROW_WITH_BROTLI="${ARROW_WITH_BROTLI:-OFF}" \ + -DARROW_WITH_BZ2="${ARROW_WITH_BZ2:-OFF}" \ + -DARROW_WITH_LZ4="${ARROW_WITH_LZ4:-OFF}" \ + -DARROW_WITH_OPENTELEMETRY="${ARROW_WITH_OPENTELEMETRY:-OFF}" \ + -DARROW_WITH_MUSL="${ARROW_WITH_MUSL:-OFF}" \ + -DARROW_WITH_SNAPPY="${ARROW_WITH_SNAPPY:-OFF}" \ + -DARROW_WITH_UTF8PROC="${ARROW_WITH_UTF8PROC:-ON}" \ + -DARROW_WITH_ZLIB="${ARROW_WITH_ZLIB:-OFF}" \ + -DARROW_WITH_ZSTD="${ARROW_WITH_ZSTD:-OFF}" \ + -DAWSSDK_SOURCE="${AWSSDK_SOURCE:-}" \ + -DAzure_SOURCE="${Azure_SOURCE:-}" \ + -Dbenchmark_SOURCE="${benchmark_SOURCE:-}" \ + -DBOOST_SOURCE="${BOOST_SOURCE:-}" \ + -DBrotli_SOURCE="${Brotli_SOURCE:-}" \ + -DBUILD_WARNING_LEVEL="${BUILD_WARNING_LEVEL:-CHECKIN}" \ + -Dc-ares_SOURCE="${cares_SOURCE:-}" \ + -DCMAKE_BUILD_TYPE="${ARROW_BUILD_TYPE:-debug}" \ + -DCMAKE_VERBOSE_MAKEFILE="${CMAKE_VERBOSE_MAKEFILE:-OFF}" \ -DCMAKE_C_FLAGS="${CFLAGS:-}" \ -DCMAKE_CXX_FLAGS="${CXXFLAGS:-}" \ -DCMAKE_CXX_STANDARD="${CMAKE_CXX_STANDARD:-17}" \ - -DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR:-lib} \ - -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX:-${ARROW_HOME}} \ - -DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD:-OFF} \ - -DCUDAToolkit_ROOT=${CUDAToolkit_ROOT:-} \ - -Dgflags_SOURCE=${gflags_SOURCE:-} \ - -Dgoogle_cloud_cpp_storage_SOURCE=${google_cloud_cpp_storage_SOURCE:-} \ - -DgRPC_SOURCE=${gRPC_SOURCE:-} \ - -DGTest_SOURCE=${GTest_SOURCE:-} \ - -Dlz4_SOURCE=${lz4_SOURCE:-} \ - -Dopentelemetry-cpp_SOURCE=${opentelemetry_cpp_SOURCE:-} \ - -DORC_SOURCE=${ORC_SOURCE:-} \ - -DPARQUET_BUILD_EXAMPLES=${PARQUET_BUILD_EXAMPLES:-OFF} \ - -DPARQUET_BUILD_EXECUTABLES=${PARQUET_BUILD_EXECUTABLES:-OFF} \ - -DPARQUET_REQUIRE_ENCRYPTION=${PARQUET_REQUIRE_ENCRYPTION:-ON} \ - -DProtobuf_SOURCE=${Protobuf_SOURCE:-} \ - -DRapidJSON_SOURCE=${RapidJSON_SOURCE:-} \ - -Dre2_SOURCE=${re2_SOURCE:-} \ - -DSnappy_SOURCE=${Snappy_SOURCE:-} \ - -DThrift_SOURCE=${Thrift_SOURCE:-} \ - -Dutf8proc_SOURCE=${utf8proc_SOURCE:-} \ - -Dzstd_SOURCE=${zstd_SOURCE:-} \ - -Dxsimd_SOURCE=${xsimd_SOURCE:-} \ + -DCMAKE_INSTALL_LIBDIR="${CMAKE_INSTALL_LIBDIR:-lib}" \ + -DCMAKE_INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX:-${ARROW_HOME}}" \ + -DCMAKE_UNITY_BUILD="${CMAKE_UNITY_BUILD:-OFF}" \ + -DCUDAToolkit_ROOT="${CUDAToolkit_ROOT:-}" \ + -Dgflags_SOURCE="${gflags_SOURCE:-}" \ + -Dgoogle_cloud_cpp_storage_SOURCE="${google_cloud_cpp_storage_SOURCE:-}" \ + -DgRPC_SOURCE="${gRPC_SOURCE:-}" \ + -DGTest_SOURCE="${GTest_SOURCE:-}" \ + -Dlz4_SOURCE="${lz4_SOURCE:-}" \ + -Dopentelemetry-cpp_SOURCE="${opentelemetry_cpp_SOURCE:-}" \ + -DORC_SOURCE="${ORC_SOURCE:-}" \ + -DPARQUET_BUILD_EXAMPLES="${PARQUET_BUILD_EXAMPLES:-OFF}" \ + -DPARQUET_BUILD_EXECUTABLES="${PARQUET_BUILD_EXECUTABLES:-OFF}" \ + -DPARQUET_REQUIRE_ENCRYPTION="${PARQUET_REQUIRE_ENCRYPTION:-ON}" \ + -DProtobuf_SOURCE="${Protobuf_SOURCE:-}" \ + -DRapidJSON_SOURCE="${RapidJSON_SOURCE:-}" \ + -Dre2_SOURCE="${re2_SOURCE:-}" \ + -DSnappy_SOURCE="${Snappy_SOURCE:-}" \ + -DThrift_SOURCE="${Thrift_SOURCE:-}" \ + -Dutf8proc_SOURCE="${utf8proc_SOURCE:-}" \ + -Dzstd_SOURCE="${zstd_SOURCE:-}" \ + -Dxsimd_SOURCE="${xsimd_SOURCE:-}" \ -G "${CMAKE_GENERATOR:-Ninja}" \ - ${ARROW_CMAKE_ARGS} \ - ${source_dir} + "${ARROW_CMAKE_ARGS}" \ + "${source_dir}" fi -: ${ARROW_BUILD_PARALLEL:=$[${n_jobs} + 1]} +: "${ARROW_BUILD_PARALLEL:=$((n_jobs + 1))}" if [ "${ARROW_USE_MESON:-OFF}" = "ON" ]; then - time meson compile -j ${ARROW_BUILD_PARALLEL} + time meson compile -j "${ARROW_BUILD_PARALLEL}" meson install # Remove all added files in cpp/subprojects/ because they may have # unreadable permissions on Docker host. @@ -298,7 +303,7 @@ if [ "${ARROW_USE_MESON:-OFF}" = "ON" ]; then meson subprojects purge --confirm --include-cache popd else - : ${CMAKE_BUILD_PARALLEL_LEVEL:=${ARROW_BUILD_PARALLEL}} + : "${CMAKE_BUILD_PARALLEL_LEVEL:=${ARROW_BUILD_PARALLEL}}" export CMAKE_BUILD_PARALLEL_LEVEL time cmake --build . --target install fi @@ -322,7 +327,7 @@ if [ -x "$(command -v ldconfig)" ]; then SUDO= fi fi - ${SUDO} ldconfig ${ARROW_HOME}/${CMAKE_INSTALL_LIBDIR:-lib} + ${SUDO} ldconfig "${ARROW_HOME}/${CMAKE_INSTALL_LIBDIR:-lib}" fi if [ "${ARROW_USE_CCACHE}" == "ON" ]; then @@ -336,7 +341,7 @@ if command -v sccache &> /dev/null; then fi if [ "${BUILD_DOCS_CPP}" == "ON" ]; then - pushd ${source_dir}/apidoc + pushd "${source_dir}/apidoc" OUTPUT_DIRECTORY=${build_dir}/apidoc doxygen popd fi