Skip to content

Commit 7932e19

Browse files
GH-48222: [CI][Dev] Fix shellcheck errors in ci/scripts/cpp_build.sh (#48223)
### Rationale for this change This is the sub issue #44748. * SC1090: Can't follow non-constant source. Use a directive to specify location * SC1091: Not following: (error message here) * SC2007: Use `$((..))` instead of deprecated `$[..]` * SC2086: Double quote to prevent globbing and word splitting. * SC2155: Declare and assign separately to avoid masking return values. * SC2223: This default assignment may cause DoS due to globbing. Quote it. * SC2236: Use `-n` instead of `! -z`. * SC2242: Can only exit with status 0-255. Other data should be written to stdout/stderr. ``` In ci/scripts/cpp_build.sh line 25: : ${ARROW_OFFLINE:=OFF} ^-------------------^ SC2223 (info): This default assignment may cause DoS due to globbing. Quote it. In ci/scripts/cpp_build.sh line 26: : ${ARROW_USE_CCACHE:=OFF} ^----------------------^ SC2223 (info): This default assignment may cause DoS due to globbing. Quote it. In ci/scripts/cpp_build.sh line 27: : ${BUILD_DOCS_CPP:=OFF} ^--------------------^ SC2223 (info): This default assignment may cause DoS due to globbing. Quote it. In ci/scripts/cpp_build.sh line 30: git config --global --add safe.directory ${1} ^--^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: git config --global --add safe.directory "${1}" In ci/scripts/cpp_build.sh line 34: if [ ! -z "${CONDA_PREFIX}" ] && [ "${ARROW_EMSCRIPTEN:-OFF}" = "OFF" ]; then ^-- SC2236 (style): Use -n instead of ! -z. In ci/scripts/cpp_build.sh line 45: export ARROW_GANDIVA_PC_CXX_FLAGS=$(echo | ${CXX} -E -Wp,-v -xc++ - 2>&1 | grep '^ ' | awk '{print "-isystem;" substr($1, 1)}' | tr '\n' ';') ^------------------------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In ci/scripts/cpp_build.sh line 47: export ARROW_GANDIVA_PC_CXX_FLAGS="-isysroot;$(xcrun --show-sdk-path)" ^------------------------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In ci/scripts/cpp_build.sh line 54: : ${ARROW_C_FLAGS_DEBUG:=-g1} ^-------------------------^ SC2223 (info): This default assignment may cause DoS due to globbing. Quote it. In ci/scripts/cpp_build.sh line 55: : ${ARROW_CXX_FLAGS_DEBUG:=-g1} ^---------------------------^ SC2223 (info): This default assignment may cause DoS due to globbing. Quote it. In ci/scripts/cpp_build.sh line 100: mkdir -p ${build_dir} ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: mkdir -p "${build_dir}" In ci/scripts/cpp_build.sh line 101: pushd ${build_dir} ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: pushd "${build_dir}" In ci/scripts/cpp_build.sh line 104: ${source_dir}/thirdparty/download_dependencies.sh ${PWD}/thirdparty > \ ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^----^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "${source_dir}"/thirdparty/download_dependencies.sh "${PWD}"/thirdparty > \ In ci/scripts/cpp_build.sh line 106: . enable_offline_build.sh ^---------------------^ SC1091 (info): Not following: enable_offline_build.sh: openBinaryFile: does not exist (No such file or directory) In ci/scripts/cpp_build.sh line 144: --prefix=${MESON_PREFIX:-${ARROW_HOME}} \ ^----------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: --prefix="${MESON_PREFIX:-${ARROW_HOME}}" \ In ci/scripts/cpp_build.sh line 145: --buildtype=${ARROW_BUILD_TYPE:-debug} \ ^------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: --buildtype="${ARROW_BUILD_TYPE:-debug}" \ In ci/scripts/cpp_build.sh line 151: ${source_dir} ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "${source_dir}" In ci/scripts/cpp_build.sh line 158: exit -1 ^-- SC2242 (error): Can only exit with status 0-255. Other data should be written to stdout/stderr. In ci/scripts/cpp_build.sh line 161: source ~/emsdk/emsdk_env.sh ^------------------^ SC1090 (warning): ShellCheck can't follow non-constant source. Use a directive to specify location. In ci/scripts/cpp_build.sh line 162: export CMAKE_INSTALL_PREFIX=$(em-config CACHE)/sysroot ^------------------^ SC2155 (warning): Declare and assign separately to avoid masking return values. In ci/scripts/cpp_build.sh line 167: --preset=ninja-${ARROW_BUILD_TYPE:-debug}-emscripten \ ^------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: --preset=ninja-"${ARROW_BUILD_TYPE:-debug}"-emscripten \ In ci/scripts/cpp_build.sh line 168: -DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE_MAKEFILE:-OFF} \ ^----------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DCMAKE_VERBOSE_MAKEFILE="${CMAKE_VERBOSE_MAKEFILE:-OFF}" \ In ci/scripts/cpp_build.sh line 172: -DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR:-lib} \ ^--------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DCMAKE_INSTALL_LIBDIR="${CMAKE_INSTALL_LIBDIR:-lib}" \ In ci/scripts/cpp_build.sh line 173: -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX:-${ARROW_HOME}} \ ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DCMAKE_INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX:-${ARROW_HOME}}" \ In ci/scripts/cpp_build.sh line 174: -DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD:-OFF} \ ^-----------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DCMAKE_UNITY_BUILD="${CMAKE_UNITY_BUILD:-OFF}" \ In ci/scripts/cpp_build.sh line 175: ${ARROW_CMAKE_ARGS} \ ^-----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "${ARROW_CMAKE_ARGS}" \ In ci/scripts/cpp_build.sh line 176: ${source_dir} ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "${source_dir}" In ci/scripts/cpp_build.sh line 180: ${ARROW_CMAKE_ARGS} \ ^-----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "${ARROW_CMAKE_ARGS}" \ In ci/scripts/cpp_build.sh line 181: ${source_dir} ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "${source_dir}" In ci/scripts/cpp_build.sh line 184: -Dabsl_SOURCE=${absl_SOURCE:-} \ ^--------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -Dabsl_SOURCE="${absl_SOURCE:-}" \ In ci/scripts/cpp_build.sh line 185: -DARROW_ACERO=${ARROW_ACERO:-OFF} \ ^-----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_ACERO="${ARROW_ACERO:-OFF}" \ In ci/scripts/cpp_build.sh line 186: -DARROW_AZURE=${ARROW_AZURE:-OFF} \ ^-----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_AZURE="${ARROW_AZURE:-OFF}" \ In ci/scripts/cpp_build.sh line 187: -DARROW_BOOST_USE_SHARED=${ARROW_BOOST_USE_SHARED:-ON} \ ^---------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_BOOST_USE_SHARED="${ARROW_BOOST_USE_SHARED:-ON}" \ In ci/scripts/cpp_build.sh line 188: -DARROW_BUILD_BENCHMARKS_REFERENCE=${ARROW_BUILD_BENCHMARKS:-OFF} \ ^----------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_BUILD_BENCHMARKS_REFERENCE="${ARROW_BUILD_BENCHMARKS:-OFF}" \ In ci/scripts/cpp_build.sh line 189: -DARROW_BUILD_BENCHMARKS=${ARROW_BUILD_BENCHMARKS:-OFF} \ ^----------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_BUILD_BENCHMARKS="${ARROW_BUILD_BENCHMARKS:-OFF}" \ In ci/scripts/cpp_build.sh line 190: -DARROW_BUILD_EXAMPLES=${ARROW_BUILD_EXAMPLES:-OFF} \ ^--------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_BUILD_EXAMPLES="${ARROW_BUILD_EXAMPLES:-OFF}" \ In ci/scripts/cpp_build.sh line 191: -DARROW_BUILD_INTEGRATION=${ARROW_BUILD_INTEGRATION:-OFF} \ ^-----------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_BUILD_INTEGRATION="${ARROW_BUILD_INTEGRATION:-OFF}" \ In ci/scripts/cpp_build.sh line 192: -DARROW_BUILD_SHARED=${ARROW_BUILD_SHARED:-ON} \ ^-----------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_BUILD_SHARED="${ARROW_BUILD_SHARED:-ON}" \ In ci/scripts/cpp_build.sh line 193: -DARROW_BUILD_STATIC=${ARROW_BUILD_STATIC:-ON} \ ^-----------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_BUILD_STATIC="${ARROW_BUILD_STATIC:-ON}" \ In ci/scripts/cpp_build.sh line 194: -DARROW_BUILD_TESTS=${ARROW_BUILD_TESTS:-OFF} \ ^-----------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_BUILD_TESTS="${ARROW_BUILD_TESTS:-OFF}" \ In ci/scripts/cpp_build.sh line 195: -DARROW_BUILD_UTILITIES=${ARROW_BUILD_UTILITIES:-ON} \ ^--------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_BUILD_UTILITIES="${ARROW_BUILD_UTILITIES:-ON}" \ In ci/scripts/cpp_build.sh line 196: -DARROW_COMPUTE=${ARROW_COMPUTE:-ON} \ ^------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_COMPUTE="${ARROW_COMPUTE:-ON}" \ In ci/scripts/cpp_build.sh line 197: -DARROW_CSV=${ARROW_CSV:-ON} \ ^--------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_CSV="${ARROW_CSV:-ON}" \ In ci/scripts/cpp_build.sh line 198: -DARROW_CUDA=${ARROW_CUDA:-OFF} \ ^----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_CUDA="${ARROW_CUDA:-OFF}" \ In ci/scripts/cpp_build.sh line 199: -DARROW_CXXFLAGS=${ARROW_CXXFLAGS:-} \ ^-----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_CXXFLAGS="${ARROW_CXXFLAGS:-}" \ In ci/scripts/cpp_build.sh line 206: -DARROW_DATASET=${ARROW_DATASET:-OFF} \ ^-------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_DATASET="${ARROW_DATASET:-OFF}" \ In ci/scripts/cpp_build.sh line 207: -DARROW_DEPENDENCY_SOURCE=${ARROW_DEPENDENCY_SOURCE:-AUTO} \ ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_DEPENDENCY_SOURCE="${ARROW_DEPENDENCY_SOURCE:-AUTO}" \ In ci/scripts/cpp_build.sh line 208: -DARROW_DEPENDENCY_USE_SHARED=${ARROW_DEPENDENCY_USE_SHARED:-ON} \ ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_DEPENDENCY_USE_SHARED="${ARROW_DEPENDENCY_USE_SHARED:-ON}" \ In ci/scripts/cpp_build.sh line 209: -DARROW_ENABLE_THREADING=${ARROW_ENABLE_THREADING:-ON} \ ^---------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_ENABLE_THREADING="${ARROW_ENABLE_THREADING:-ON}" \ In ci/scripts/cpp_build.sh line 210: -DARROW_ENABLE_TIMING_TESTS=${ARROW_ENABLE_TIMING_TESTS:-ON} \ ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_ENABLE_TIMING_TESTS="${ARROW_ENABLE_TIMING_TESTS:-ON}" \ In ci/scripts/cpp_build.sh line 211: -DARROW_EXTRA_ERROR_CONTEXT=${ARROW_EXTRA_ERROR_CONTEXT:-OFF} \ ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_EXTRA_ERROR_CONTEXT="${ARROW_EXTRA_ERROR_CONTEXT:-OFF}" \ In ci/scripts/cpp_build.sh line 212: -DARROW_FILESYSTEM=${ARROW_FILESYSTEM:-ON} \ ^---------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_FILESYSTEM="${ARROW_FILESYSTEM:-ON}" \ In ci/scripts/cpp_build.sh line 213: -DARROW_FLIGHT=${ARROW_FLIGHT:-OFF} \ ^------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_FLIGHT="${ARROW_FLIGHT:-OFF}" \ In ci/scripts/cpp_build.sh line 214: -DARROW_FLIGHT_SQL=${ARROW_FLIGHT_SQL:-OFF} \ ^----------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_FLIGHT_SQL="${ARROW_FLIGHT_SQL:-OFF}" \ In ci/scripts/cpp_build.sh line 215: -DARROW_FLIGHT_SQL_ODBC=${ARROW_FLIGHT_SQL_ODBC:-OFF} \ ^---------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_FLIGHT_SQL_ODBC="${ARROW_FLIGHT_SQL_ODBC:-OFF}" \ In ci/scripts/cpp_build.sh line 216: -DARROW_FUZZING=${ARROW_FUZZING:-OFF} \ ^-------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_FUZZING="${ARROW_FUZZING:-OFF}" \ In ci/scripts/cpp_build.sh line 217: -DARROW_GANDIVA_PC_CXX_FLAGS=${ARROW_GANDIVA_PC_CXX_FLAGS:-} \ ^-----------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_GANDIVA_PC_CXX_FLAGS="${ARROW_GANDIVA_PC_CXX_FLAGS:-}" \ In ci/scripts/cpp_build.sh line 218: -DARROW_GANDIVA=${ARROW_GANDIVA:-OFF} \ ^-------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_GANDIVA="${ARROW_GANDIVA:-OFF}" \ In ci/scripts/cpp_build.sh line 219: -DARROW_GCS=${ARROW_GCS:-OFF} \ ^---------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_GCS="${ARROW_GCS:-OFF}" \ In ci/scripts/cpp_build.sh line 220: -DARROW_HDFS=${ARROW_HDFS:-ON} \ ^---------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_HDFS="${ARROW_HDFS:-ON}" \ In ci/scripts/cpp_build.sh line 221: -DARROW_INSTALL_NAME_RPATH=${ARROW_INSTALL_NAME_RPATH:-ON} \ ^-----------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_INSTALL_NAME_RPATH="${ARROW_INSTALL_NAME_RPATH:-ON}" \ In ci/scripts/cpp_build.sh line 222: -DARROW_JEMALLOC=${ARROW_JEMALLOC:-OFF} \ ^--------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_JEMALLOC="${ARROW_JEMALLOC:-OFF}" \ In ci/scripts/cpp_build.sh line 223: -DARROW_JSON=${ARROW_JSON:-ON} \ ^---------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_JSON="${ARROW_JSON:-ON}" \ In ci/scripts/cpp_build.sh line 224: -DARROW_LARGE_MEMORY_TESTS=${ARROW_LARGE_MEMORY_TESTS:-OFF} \ ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_LARGE_MEMORY_TESTS="${ARROW_LARGE_MEMORY_TESTS:-OFF}" \ In ci/scripts/cpp_build.sh line 225: -DARROW_MIMALLOC=${ARROW_MIMALLOC:-ON} \ ^-------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_MIMALLOC="${ARROW_MIMALLOC:-ON}" \ In ci/scripts/cpp_build.sh line 226: -DARROW_ORC=${ARROW_ORC:-OFF} \ ^---------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_ORC="${ARROW_ORC:-OFF}" \ In ci/scripts/cpp_build.sh line 227: -DARROW_PARQUET=${ARROW_PARQUET:-OFF} \ ^-------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_PARQUET="${ARROW_PARQUET:-OFF}" \ In ci/scripts/cpp_build.sh line 228: -DARROW_RUNTIME_SIMD_LEVEL=${ARROW_RUNTIME_SIMD_LEVEL:-MAX} \ ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_RUNTIME_SIMD_LEVEL="${ARROW_RUNTIME_SIMD_LEVEL:-MAX}" \ In ci/scripts/cpp_build.sh line 229: -DARROW_S3=${ARROW_S3:-OFF} \ ^--------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_S3="${ARROW_S3:-OFF}" \ In ci/scripts/cpp_build.sh line 230: -DARROW_SIMD_LEVEL=${ARROW_SIMD_LEVEL:-DEFAULT} \ ^--------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_SIMD_LEVEL="${ARROW_SIMD_LEVEL:-DEFAULT}" \ In ci/scripts/cpp_build.sh line 231: -DARROW_SUBSTRAIT=${ARROW_SUBSTRAIT:-OFF} \ ^---------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_SUBSTRAIT="${ARROW_SUBSTRAIT:-OFF}" \ In ci/scripts/cpp_build.sh line 232: -DARROW_TEST_LINKAGE=${ARROW_TEST_LINKAGE:-shared} \ ^---------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_TEST_LINKAGE="${ARROW_TEST_LINKAGE:-shared}" \ In ci/scripts/cpp_build.sh line 233: -DARROW_TEST_MEMCHECK=${ARROW_TEST_MEMCHECK:-OFF} \ ^-------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_TEST_MEMCHECK="${ARROW_TEST_MEMCHECK:-OFF}" \ In ci/scripts/cpp_build.sh line 234: -DARROW_USE_ASAN=${ARROW_USE_ASAN:-OFF} \ ^--------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_USE_ASAN="${ARROW_USE_ASAN:-OFF}" \ In ci/scripts/cpp_build.sh line 235: -DARROW_USE_CCACHE=${ARROW_USE_CCACHE:-ON} \ ^---------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_USE_CCACHE="${ARROW_USE_CCACHE:-ON}" \ In ci/scripts/cpp_build.sh line 236: -DARROW_USE_GLOG=${ARROW_USE_GLOG:-OFF} \ ^--------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_USE_GLOG="${ARROW_USE_GLOG:-OFF}" \ In ci/scripts/cpp_build.sh line 237: -DARROW_USE_LLD=${ARROW_USE_LLD:-OFF} \ ^-------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_USE_LLD="${ARROW_USE_LLD:-OFF}" \ In ci/scripts/cpp_build.sh line 238: -DARROW_USE_MOLD=${ARROW_USE_MOLD:-OFF} \ ^--------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_USE_MOLD="${ARROW_USE_MOLD:-OFF}" \ In ci/scripts/cpp_build.sh line 239: -DARROW_USE_STATIC_CRT=${ARROW_USE_STATIC_CRT:-OFF} \ ^--------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_USE_STATIC_CRT="${ARROW_USE_STATIC_CRT:-OFF}" \ In ci/scripts/cpp_build.sh line 240: -DARROW_USE_TSAN=${ARROW_USE_TSAN:-OFF} \ ^--------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_USE_TSAN="${ARROW_USE_TSAN:-OFF}" \ In ci/scripts/cpp_build.sh line 241: -DARROW_USE_UBSAN=${ARROW_USE_UBSAN:-OFF} \ ^---------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_USE_UBSAN="${ARROW_USE_UBSAN:-OFF}" \ In ci/scripts/cpp_build.sh line 242: -DARROW_VERBOSE_THIRDPARTY_BUILD=${ARROW_VERBOSE_THIRDPARTY_BUILD:-OFF} \ ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_VERBOSE_THIRDPARTY_BUILD="${ARROW_VERBOSE_THIRDPARTY_BUILD:-OFF}" \ In ci/scripts/cpp_build.sh line 243: -DARROW_WITH_BROTLI=${ARROW_WITH_BROTLI:-OFF} \ ^-----------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_WITH_BROTLI="${ARROW_WITH_BROTLI:-OFF}" \ In ci/scripts/cpp_build.sh line 244: -DARROW_WITH_BZ2=${ARROW_WITH_BZ2:-OFF} \ ^--------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_WITH_BZ2="${ARROW_WITH_BZ2:-OFF}" \ In ci/scripts/cpp_build.sh line 245: -DARROW_WITH_LZ4=${ARROW_WITH_LZ4:-OFF} \ ^--------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_WITH_LZ4="${ARROW_WITH_LZ4:-OFF}" \ In ci/scripts/cpp_build.sh line 246: -DARROW_WITH_OPENTELEMETRY=${ARROW_WITH_OPENTELEMETRY:-OFF} \ ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_WITH_OPENTELEMETRY="${ARROW_WITH_OPENTELEMETRY:-OFF}" \ In ci/scripts/cpp_build.sh line 247: -DARROW_WITH_MUSL=${ARROW_WITH_MUSL:-OFF} \ ^---------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_WITH_MUSL="${ARROW_WITH_MUSL:-OFF}" \ In ci/scripts/cpp_build.sh line 248: -DARROW_WITH_SNAPPY=${ARROW_WITH_SNAPPY:-OFF} \ ^-----------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_WITH_SNAPPY="${ARROW_WITH_SNAPPY:-OFF}" \ In ci/scripts/cpp_build.sh line 249: -DARROW_WITH_UTF8PROC=${ARROW_WITH_UTF8PROC:-ON} \ ^------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_WITH_UTF8PROC="${ARROW_WITH_UTF8PROC:-ON}" \ In ci/scripts/cpp_build.sh line 250: -DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB:-OFF} \ ^---------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_WITH_ZLIB="${ARROW_WITH_ZLIB:-OFF}" \ In ci/scripts/cpp_build.sh line 251: -DARROW_WITH_ZSTD=${ARROW_WITH_ZSTD:-OFF} \ ^---------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DARROW_WITH_ZSTD="${ARROW_WITH_ZSTD:-OFF}" \ In ci/scripts/cpp_build.sh line 252: -DAWSSDK_SOURCE=${AWSSDK_SOURCE:-} \ ^----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DAWSSDK_SOURCE="${AWSSDK_SOURCE:-}" \ In ci/scripts/cpp_build.sh line 253: -DAzure_SOURCE=${Azure_SOURCE:-} \ ^---------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DAzure_SOURCE="${Azure_SOURCE:-}" \ In ci/scripts/cpp_build.sh line 254: -Dbenchmark_SOURCE=${benchmark_SOURCE:-} \ ^-------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -Dbenchmark_SOURCE="${benchmark_SOURCE:-}" \ In ci/scripts/cpp_build.sh line 255: -DBOOST_SOURCE=${BOOST_SOURCE:-} \ ^---------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DBOOST_SOURCE="${BOOST_SOURCE:-}" \ In ci/scripts/cpp_build.sh line 256: -DBrotli_SOURCE=${Brotli_SOURCE:-} \ ^----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DBrotli_SOURCE="${Brotli_SOURCE:-}" \ In ci/scripts/cpp_build.sh line 257: -DBUILD_WARNING_LEVEL=${BUILD_WARNING_LEVEL:-CHECKIN} \ ^-----------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DBUILD_WARNING_LEVEL="${BUILD_WARNING_LEVEL:-CHECKIN}" \ In ci/scripts/cpp_build.sh line 258: -Dc-ares_SOURCE=${cares_SOURCE:-} \ ^---------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -Dc-ares_SOURCE="${cares_SOURCE:-}" \ In ci/scripts/cpp_build.sh line 259: -DCMAKE_BUILD_TYPE=${ARROW_BUILD_TYPE:-debug} \ ^------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DCMAKE_BUILD_TYPE="${ARROW_BUILD_TYPE:-debug}" \ In ci/scripts/cpp_build.sh line 260: -DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE_MAKEFILE:-OFF} \ ^----------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DCMAKE_VERBOSE_MAKEFILE="${CMAKE_VERBOSE_MAKEFILE:-OFF}" \ In ci/scripts/cpp_build.sh line 264: -DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR:-lib} \ ^--------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DCMAKE_INSTALL_LIBDIR="${CMAKE_INSTALL_LIBDIR:-lib}" \ In ci/scripts/cpp_build.sh line 265: -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX:-${ARROW_HOME}} \ ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DCMAKE_INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX:-${ARROW_HOME}}" \ In ci/scripts/cpp_build.sh line 266: -DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD:-OFF} \ ^-----------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DCMAKE_UNITY_BUILD="${CMAKE_UNITY_BUILD:-OFF}" \ In ci/scripts/cpp_build.sh line 267: -DCUDAToolkit_ROOT=${CUDAToolkit_ROOT:-} \ ^-------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DCUDAToolkit_ROOT="${CUDAToolkit_ROOT:-}" \ In ci/scripts/cpp_build.sh line 268: -Dgflags_SOURCE=${gflags_SOURCE:-} \ ^----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -Dgflags_SOURCE="${gflags_SOURCE:-}" \ In ci/scripts/cpp_build.sh line 269: -Dgoogle_cloud_cpp_storage_SOURCE=${google_cloud_cpp_storage_SOURCE:-} \ ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -Dgoogle_cloud_cpp_storage_SOURCE="${google_cloud_cpp_storage_SOURCE:-}" \ In ci/scripts/cpp_build.sh line 270: -DgRPC_SOURCE=${gRPC_SOURCE:-} \ ^--------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DgRPC_SOURCE="${gRPC_SOURCE:-}" \ In ci/scripts/cpp_build.sh line 271: -DGTest_SOURCE=${GTest_SOURCE:-} \ ^---------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DGTest_SOURCE="${GTest_SOURCE:-}" \ In ci/scripts/cpp_build.sh line 272: -Dlz4_SOURCE=${lz4_SOURCE:-} \ ^-------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -Dlz4_SOURCE="${lz4_SOURCE:-}" \ In ci/scripts/cpp_build.sh line 273: -Dopentelemetry-cpp_SOURCE=${opentelemetry_cpp_SOURCE:-} \ ^---------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -Dopentelemetry-cpp_SOURCE="${opentelemetry_cpp_SOURCE:-}" \ In ci/scripts/cpp_build.sh line 274: -DORC_SOURCE=${ORC_SOURCE:-} \ ^-------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DORC_SOURCE="${ORC_SOURCE:-}" \ In ci/scripts/cpp_build.sh line 275: -DPARQUET_BUILD_EXAMPLES=${PARQUET_BUILD_EXAMPLES:-OFF} \ ^----------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DPARQUET_BUILD_EXAMPLES="${PARQUET_BUILD_EXAMPLES:-OFF}" \ In ci/scripts/cpp_build.sh line 276: -DPARQUET_BUILD_EXECUTABLES=${PARQUET_BUILD_EXECUTABLES:-OFF} \ ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DPARQUET_BUILD_EXECUTABLES="${PARQUET_BUILD_EXECUTABLES:-OFF}" \ In ci/scripts/cpp_build.sh line 277: -DPARQUET_REQUIRE_ENCRYPTION=${PARQUET_REQUIRE_ENCRYPTION:-ON} \ ^-- SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DPARQUET_REQUIRE_ENCRYPTION="${PARQUET_REQUIRE_ENCRYPTION:-ON}" \ In ci/scripts/cpp_build.sh line 278: -DProtobuf_SOURCE=${Protobuf_SOURCE:-} \ ^------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DProtobuf_SOURCE="${Protobuf_SOURCE:-}" \ In ci/scripts/cpp_build.sh line 279: -DRapidJSON_SOURCE=${RapidJSON_SOURCE:-} \ ^-------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DRapidJSON_SOURCE="${RapidJSON_SOURCE:-}" \ In ci/scripts/cpp_build.sh line 280: -Dre2_SOURCE=${re2_SOURCE:-} \ ^-------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -Dre2_SOURCE="${re2_SOURCE:-}" \ In ci/scripts/cpp_build.sh line 281: -DSnappy_SOURCE=${Snappy_SOURCE:-} \ ^----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DSnappy_SOURCE="${Snappy_SOURCE:-}" \ In ci/scripts/cpp_build.sh line 282: -DThrift_SOURCE=${Thrift_SOURCE:-} \ ^----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -DThrift_SOURCE="${Thrift_SOURCE:-}" \ In ci/scripts/cpp_build.sh line 283: -Dutf8proc_SOURCE=${utf8proc_SOURCE:-} \ ^------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -Dutf8proc_SOURCE="${utf8proc_SOURCE:-}" \ In ci/scripts/cpp_build.sh line 284: -Dzstd_SOURCE=${zstd_SOURCE:-} \ ^--------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -Dzstd_SOURCE="${zstd_SOURCE:-}" \ In ci/scripts/cpp_build.sh line 285: -Dxsimd_SOURCE=${xsimd_SOURCE:-} \ ^---------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: -Dxsimd_SOURCE="${xsimd_SOURCE:-}" \ In ci/scripts/cpp_build.sh line 287: ${ARROW_CMAKE_ARGS} \ ^-----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "${ARROW_CMAKE_ARGS}" \ In ci/scripts/cpp_build.sh line 288: ${source_dir} ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: "${source_dir}" In ci/scripts/cpp_build.sh line 291: : ${ARROW_BUILD_PARALLEL:=$[${n_jobs} + 1]} ^-- SC2223 (info): This default assignment may cause DoS due to globbing. Quote it. ^--------------^ SC2007 (style): Use $((..)) instead of deprecated $[..] In ci/scripts/cpp_build.sh line 293: time meson compile -j ${ARROW_BUILD_PARALLEL} ^---------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: time meson compile -j "${ARROW_BUILD_PARALLEL}" In ci/scripts/cpp_build.sh line 301: : ${CMAKE_BUILD_PARALLEL_LEVEL:=${ARROW_BUILD_PARALLEL}} ^-- SC2223 (info): This default assignment may cause DoS due to globbing. Quote it. In ci/scripts/cpp_build.sh line 325: ${SUDO} ldconfig ${ARROW_HOME}/${CMAKE_INSTALL_LIBDIR:-lib} ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^--------------------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: ${SUDO} ldconfig "${ARROW_HOME}"/"${CMAKE_INSTALL_LIBDIR:-lib}" In ci/scripts/cpp_build.sh line 339: pushd ${source_dir}/apidoc ^-----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: pushd "${source_dir}"/apidoc For more information: https://www.shellcheck.net/wiki/SC2242 -- Can only exit with status 0-255. ... https://www.shellcheck.net/wiki/SC1090 -- ShellCheck can't follow non-const... https://www.shellcheck.net/wiki/SC2155 -- Declare and assign separately to ... ``` ### What changes are included in this PR? * SC1090: Ignore shellcheck. * SC1091: Ignore shellcheck. * SC2007: Use `$((..))`. * SC2086: Quote variables. * SC2155: Declare and assign variables separately. * SC2223: Quote variables. * SC2236: Use `-n` * SC2242: Use 1 as exit number ### Are these changes tested? Yes. ### Are there any user-facing changes? No. * GitHub Issue: #48222 Authored-by: Hiroyuki Sato <hiroysato@gmail.com> Signed-off-by: Sutou Kouhei <kou@clear-code.com>
1 parent aa8e06d commit 7932e19

2 files changed

Lines changed: 139 additions & 129 deletions

File tree

.pre-commit-config.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,7 @@ repos:
295295
?^ci/scripts/c_glib_build\.sh$|
296296
?^ci/scripts/c_glib_test\.sh$|
297297
?^ci/scripts/ccache_setup\.sh$|
298+
?^ci/scripts/cpp_build\.sh$|
298299
?^ci/scripts/cpp_test\.sh$|
299300
?^ci/scripts/download_tz_database\.sh$|
300301
?^ci/scripts/install_azurite\.sh$|

ci/scripts/cpp_build.sh

Lines changed: 138 additions & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,16 @@ set -ex
2222
source_dir=${1}/cpp
2323
build_dir=${2}/cpp
2424

25-
: ${ARROW_OFFLINE:=OFF}
26-
: ${ARROW_USE_CCACHE:=OFF}
27-
: ${BUILD_DOCS_CPP:=OFF}
25+
: "${ARROW_OFFLINE:=OFF}"
26+
: "${ARROW_USE_CCACHE:=OFF}"
27+
: "${BUILD_DOCS_CPP:=OFF}"
2828

2929
if [ -x "$(command -v git)" ]; then
30-
git config --global --add safe.directory ${1}
30+
git config --global --add safe.directory "${1}"
3131
fi
3232

3333
# TODO(kszucs): consider to move these to CMake
34-
if [ ! -z "${CONDA_PREFIX}" ] && [ "${ARROW_EMSCRIPTEN:-OFF}" = "OFF" ]; then
34+
if [ -n "${CONDA_PREFIX}" ] && [ "${ARROW_EMSCRIPTEN:-OFF}" = "OFF" ]; then
3535
echo -e "===\n=== Conda environment for build\n==="
3636
conda list
3737

@@ -42,24 +42,30 @@ if [ ! -z "${CONDA_PREFIX}" ] && [ "${ARROW_EMSCRIPTEN:-OFF}" = "OFF" ]; then
4242
ARROW_CMAKE_ARGS+=" -DCMAKE_RANLIB=${RANLIB}"
4343
fi
4444
export ARROW_CMAKE_ARGS
45-
export ARROW_GANDIVA_PC_CXX_FLAGS=$(echo | ${CXX} -E -Wp,-v -xc++ - 2>&1 | grep '^ ' | awk '{print "-isystem;" substr($1, 1)}' | tr '\n' ';')
45+
ARROW_GANDIVA_PC_CXX_FLAGS=$(echo | ${CXX} -E -Wp,-v -xc++ - 2>&1 | grep '^ ' | awk '{print "-isystem;" substr($1, 1)}' | tr '\n' ';')
46+
export ARROW_GANDIVA_PC_CXX_FLAGS
4647
elif [ -x "$(command -v xcrun)" ]; then
47-
export ARROW_GANDIVA_PC_CXX_FLAGS="-isysroot;$(xcrun --show-sdk-path)"
48+
ARROW_GANDIVA_PC_CXX_FLAGS="-isysroot;$(xcrun --show-sdk-path)"
49+
export ARROW_GANDIVA_PC_CXX_FLAGS
4850
fi
4951

5052
if [ "${GITHUB_ACTIONS:-false}" = "true" ]; then
5153
case "$(uname)" in
5254
Linux|Darwin|MINGW*)
5355
if [ "${ARROW_GDB:-OFF}" != "ON" ]; then
54-
: ${ARROW_C_FLAGS_DEBUG:=-g1}
55-
: ${ARROW_CXX_FLAGS_DEBUG:=-g1}
56+
: "${ARROW_C_FLAGS_DEBUG:=-g1}"
57+
: "${ARROW_CXX_FLAGS_DEBUG:=-g1}"
5658
fi
5759
;;
5860
*)
5961
;;
6062
esac
6163
fi
6264

65+
# Convert the space-separated CMake options into a Bash array.
66+
# This avoids ShellCheck SC2086 and preserves argument boundaries.
67+
read -r -a ARROW_CMAKE_ARGS_ARRAY <<< "$ARROW_CMAKE_ARGS"
68+
6369
if [ "${ARROW_ENABLE_THREADING:-ON}" = "OFF" ]; then
6470
ARROW_AZURE=OFF
6571
ARROW_FLIGHT=OFF
@@ -101,12 +107,13 @@ case "$(uname)" in
101107
;;
102108
esac
103109

104-
mkdir -p ${build_dir}
105-
pushd ${build_dir}
110+
mkdir -p "${build_dir}"
111+
pushd "${build_dir}"
106112

107113
if [ "${ARROW_OFFLINE}" = "ON" ]; then
108-
${source_dir}/thirdparty/download_dependencies.sh ${PWD}/thirdparty > \
114+
"${source_dir}"/thirdparty/download_dependencies.sh "${PWD}"/thirdparty > \
109115
enable_offline_build.sh
116+
# shellcheck source=/dev/null
110117
. enable_offline_build.sh
111118
# We can't use mv because we can't remove /etc/resolv.conf in Docker
112119
# container.
@@ -145,164 +152,166 @@ if [ "${ARROW_USE_MESON:-OFF}" = "ON" ]; then
145152
fi
146153
fi
147154
meson setup \
148-
--prefix=${MESON_PREFIX:-${ARROW_HOME}} \
149-
--buildtype=${ARROW_BUILD_TYPE:-debug} \
155+
--prefix="${MESON_PREFIX:-${ARROW_HOME}}" \
156+
--buildtype="${ARROW_BUILD_TYPE:-debug}" \
150157
--pkg-config-path="${CONDA_PREFIX}/lib/pkgconfig/" \
151158
-Dauto_features=enabled \
152159
-Dfuzzing=disabled \
153160
-Ds3=disabled \
154161
. \
155-
${source_dir}
162+
"${source_dir}"
156163

157164
CC="${ORIGINAL_CC}"
158165
CXX="${ORIGINAL_CXX}"
159166
elif [ "${ARROW_EMSCRIPTEN:-OFF}" = "ON" ]; then
160167
n_jobs=2 # Emscripten build fails on docker unless this is set really low
168+
# shellcheck source=/dev/null
161169
source ~/emsdk/emsdk_env.sh
162-
export CMAKE_INSTALL_PREFIX=$(em-config CACHE)/sysroot
170+
CMAKE_INSTALL_PREFIX=$(em-config CACHE)/sysroot
171+
export CMAKE_INSTALL_PREFIX
163172
# conda sets LDFLAGS / CFLAGS etc. which break
164173
# emcmake so we unset them
165174
unset LDFLAGS CFLAGS CXXFLAGS CPPFLAGS
166175
emcmake cmake \
167-
--preset=ninja-${ARROW_BUILD_TYPE:-debug}-emscripten \
168-
-DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE_MAKEFILE:-OFF} \
176+
--preset="ninja-${ARROW_BUILD_TYPE:-debug}-emscripten" \
177+
-DCMAKE_VERBOSE_MAKEFILE="${CMAKE_VERBOSE_MAKEFILE:-OFF}" \
169178
-DCMAKE_C_FLAGS="${CFLAGS:-}" \
170179
-DCMAKE_CXX_FLAGS="${CXXFLAGS:-}" \
171180
-DCMAKE_CXX_STANDARD="${CMAKE_CXX_STANDARD:-20}" \
172-
-DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR:-lib} \
173-
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX:-${ARROW_HOME}} \
174-
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD:-OFF} \
175-
${ARROW_CMAKE_ARGS} \
176-
${source_dir}
181+
-DCMAKE_INSTALL_LIBDIR="${CMAKE_INSTALL_LIBDIR:-lib}" \
182+
-DCMAKE_INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX:-${ARROW_HOME}}" \
183+
-DCMAKE_UNITY_BUILD="${CMAKE_UNITY_BUILD:-OFF}" \
184+
"${ARROW_CMAKE_ARGS_ARRAY[@]}" \
185+
"${source_dir}"
177186
elif [ -n "${CMAKE_PRESET}" ]; then
178187
cmake \
179188
--preset="${CMAKE_PRESET}" \
180-
${ARROW_CMAKE_ARGS} \
181-
${source_dir}
189+
"${ARROW_CMAKE_ARGS_ARRAY[@]}" \
190+
"${source_dir}"
182191
else
183192
cmake \
184-
-Dabsl_SOURCE=${absl_SOURCE:-} \
185-
-DARROW_ACERO=${ARROW_ACERO:-OFF} \
186-
-DARROW_AZURE=${ARROW_AZURE:-OFF} \
187-
-DARROW_BOOST_USE_SHARED=${ARROW_BOOST_USE_SHARED:-ON} \
188-
-DARROW_BUILD_BENCHMARKS_REFERENCE=${ARROW_BUILD_BENCHMARKS:-OFF} \
189-
-DARROW_BUILD_BENCHMARKS=${ARROW_BUILD_BENCHMARKS:-OFF} \
190-
-DARROW_BUILD_EXAMPLES=${ARROW_BUILD_EXAMPLES:-OFF} \
191-
-DARROW_BUILD_INTEGRATION=${ARROW_BUILD_INTEGRATION:-OFF} \
192-
-DARROW_BUILD_SHARED=${ARROW_BUILD_SHARED:-ON} \
193-
-DARROW_BUILD_STATIC=${ARROW_BUILD_STATIC:-ON} \
194-
-DARROW_BUILD_TESTS=${ARROW_BUILD_TESTS:-OFF} \
195-
-DARROW_BUILD_UTILITIES=${ARROW_BUILD_UTILITIES:-ON} \
196-
-DARROW_COMPUTE=${ARROW_COMPUTE:-ON} \
197-
-DARROW_CSV=${ARROW_CSV:-ON} \
198-
-DARROW_CUDA=${ARROW_CUDA:-OFF} \
199-
-DARROW_CXXFLAGS=${ARROW_CXXFLAGS:-} \
193+
-Dabsl_SOURCE="${absl_SOURCE:-}" \
194+
-DARROW_ACERO="${ARROW_ACERO:-OFF}" \
195+
-DARROW_AZURE="${ARROW_AZURE:-OFF}" \
196+
-DARROW_BOOST_USE_SHARED="${ARROW_BOOST_USE_SHARED:-ON}" \
197+
-DARROW_BUILD_BENCHMARKS_REFERENCE="${ARROW_BUILD_BENCHMARKS:-OFF}" \
198+
-DARROW_BUILD_BENCHMARKS="${ARROW_BUILD_BENCHMARKS:-OFF}" \
199+
-DARROW_BUILD_EXAMPLES="${ARROW_BUILD_EXAMPLES:-OFF}" \
200+
-DARROW_BUILD_INTEGRATION="${ARROW_BUILD_INTEGRATION:-OFF}" \
201+
-DARROW_BUILD_SHARED="${ARROW_BUILD_SHARED:-ON}" \
202+
-DARROW_BUILD_STATIC="${ARROW_BUILD_STATIC:-ON}" \
203+
-DARROW_BUILD_TESTS="${ARROW_BUILD_TESTS:-OFF}" \
204+
-DARROW_BUILD_UTILITIES="${ARROW_BUILD_UTILITIES:-ON}" \
205+
-DARROW_COMPUTE="${ARROW_COMPUTE:-ON}" \
206+
-DARROW_CSV="${ARROW_CSV:-ON}" \
207+
-DARROW_CUDA="${ARROW_CUDA:-OFF}" \
208+
-DARROW_CXXFLAGS="${ARROW_CXXFLAGS:-}" \
200209
-DARROW_CXX_FLAGS_DEBUG="${ARROW_CXX_FLAGS_DEBUG:-}" \
201210
-DARROW_CXX_FLAGS_RELEASE="${ARROW_CXX_FLAGS_RELEASE:-}" \
202211
-DARROW_CXX_FLAGS_RELWITHDEBINFO="${ARROW_CXX_FLAGS_RELWITHDEBINFO:-}" \
203212
-DARROW_C_FLAGS_DEBUG="${ARROW_C_FLAGS_DEBUG:-}" \
204213
-DARROW_C_FLAGS_RELEASE="${ARROW_C_FLAGS_RELEASE:-}" \
205214
-DARROW_C_FLAGS_RELWITHDEBINFO="${ARROW_C_FLAGS_RELWITHDEBINFO:-}" \
206-
-DARROW_DATASET=${ARROW_DATASET:-OFF} \
207-
-DARROW_DEPENDENCY_SOURCE=${ARROW_DEPENDENCY_SOURCE:-AUTO} \
208-
-DARROW_DEPENDENCY_USE_SHARED=${ARROW_DEPENDENCY_USE_SHARED:-ON} \
209-
-DARROW_ENABLE_THREADING=${ARROW_ENABLE_THREADING:-ON} \
210-
-DARROW_ENABLE_TIMING_TESTS=${ARROW_ENABLE_TIMING_TESTS:-ON} \
211-
-DARROW_EXTRA_ERROR_CONTEXT=${ARROW_EXTRA_ERROR_CONTEXT:-OFF} \
212-
-DARROW_FILESYSTEM=${ARROW_FILESYSTEM:-ON} \
213-
-DARROW_FLIGHT=${ARROW_FLIGHT:-OFF} \
214-
-DARROW_FLIGHT_SQL=${ARROW_FLIGHT_SQL:-OFF} \
215-
-DARROW_FLIGHT_SQL_ODBC=${ARROW_FLIGHT_SQL_ODBC:-OFF} \
216-
-DARROW_FLIGHT_SQL_ODBC_INSTALLER=${ARROW_FLIGHT_SQL_ODBC_INSTALLER:-OFF} \
217-
-DARROW_FUZZING=${ARROW_FUZZING:-OFF} \
218-
-DARROW_GANDIVA_PC_CXX_FLAGS=${ARROW_GANDIVA_PC_CXX_FLAGS:-} \
219-
-DARROW_GANDIVA=${ARROW_GANDIVA:-OFF} \
220-
-DARROW_GCS=${ARROW_GCS:-OFF} \
221-
-DARROW_HDFS=${ARROW_HDFS:-ON} \
222-
-DARROW_INSTALL_NAME_RPATH=${ARROW_INSTALL_NAME_RPATH:-ON} \
223-
-DARROW_JEMALLOC=${ARROW_JEMALLOC:-OFF} \
224-
-DARROW_JSON=${ARROW_JSON:-ON} \
225-
-DARROW_LARGE_MEMORY_TESTS=${ARROW_LARGE_MEMORY_TESTS:-OFF} \
226-
-DARROW_MIMALLOC=${ARROW_MIMALLOC:-ON} \
227-
-DARROW_ORC=${ARROW_ORC:-OFF} \
228-
-DARROW_PARQUET=${ARROW_PARQUET:-OFF} \
229-
-DARROW_RUNTIME_SIMD_LEVEL=${ARROW_RUNTIME_SIMD_LEVEL:-MAX} \
230-
-DARROW_S3=${ARROW_S3:-OFF} \
231-
-DARROW_S3_MODULE=${ARROW_S3_MODULE:-OFF} \
232-
-DARROW_SIMD_LEVEL=${ARROW_SIMD_LEVEL:-DEFAULT} \
233-
-DARROW_SUBSTRAIT=${ARROW_SUBSTRAIT:-OFF} \
234-
-DARROW_TEST_LINKAGE=${ARROW_TEST_LINKAGE:-shared} \
235-
-DARROW_TEST_MEMCHECK=${ARROW_TEST_MEMCHECK:-OFF} \
236-
-DARROW_USE_ASAN=${ARROW_USE_ASAN:-OFF} \
237-
-DARROW_USE_CCACHE=${ARROW_USE_CCACHE:-ON} \
238-
-DARROW_USE_GLOG=${ARROW_USE_GLOG:-OFF} \
239-
-DARROW_USE_LLD=${ARROW_USE_LLD:-OFF} \
240-
-DARROW_USE_MOLD=${ARROW_USE_MOLD:-OFF} \
241-
-DARROW_USE_STATIC_CRT=${ARROW_USE_STATIC_CRT:-OFF} \
242-
-DARROW_USE_TSAN=${ARROW_USE_TSAN:-OFF} \
243-
-DARROW_USE_UBSAN=${ARROW_USE_UBSAN:-OFF} \
244-
-DARROW_VERBOSE_THIRDPARTY_BUILD=${ARROW_VERBOSE_THIRDPARTY_BUILD:-OFF} \
245-
-DARROW_WITH_BROTLI=${ARROW_WITH_BROTLI:-OFF} \
246-
-DARROW_WITH_BZ2=${ARROW_WITH_BZ2:-OFF} \
247-
-DARROW_WITH_LZ4=${ARROW_WITH_LZ4:-OFF} \
248-
-DARROW_WITH_OPENTELEMETRY=${ARROW_WITH_OPENTELEMETRY:-OFF} \
249-
-DARROW_WITH_MUSL=${ARROW_WITH_MUSL:-OFF} \
250-
-DARROW_WITH_SNAPPY=${ARROW_WITH_SNAPPY:-OFF} \
251-
-DARROW_WITH_UTF8PROC=${ARROW_WITH_UTF8PROC:-ON} \
252-
-DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB:-OFF} \
253-
-DARROW_WITH_ZSTD=${ARROW_WITH_ZSTD:-OFF} \
254-
-DAWSSDK_SOURCE=${AWSSDK_SOURCE:-} \
255-
-DAzure_SOURCE=${Azure_SOURCE:-} \
256-
-Dbenchmark_SOURCE=${benchmark_SOURCE:-} \
257-
-DBOOST_SOURCE=${BOOST_SOURCE:-} \
258-
-DBrotli_SOURCE=${Brotli_SOURCE:-} \
259-
-DBUILD_WARNING_LEVEL=${BUILD_WARNING_LEVEL:-CHECKIN} \
260-
-Dc-ares_SOURCE=${cares_SOURCE:-} \
261-
-DCMAKE_BUILD_TYPE=${ARROW_BUILD_TYPE:-debug} \
262-
-DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE_MAKEFILE:-OFF} \
215+
-DARROW_DATASET="${ARROW_DATASET:-OFF}" \
216+
-DARROW_DEPENDENCY_SOURCE="${ARROW_DEPENDENCY_SOURCE:-AUTO}" \
217+
-DARROW_DEPENDENCY_USE_SHARED="${ARROW_DEPENDENCY_USE_SHARED:-ON}" \
218+
-DARROW_ENABLE_THREADING="${ARROW_ENABLE_THREADING:-ON}" \
219+
-DARROW_ENABLE_TIMING_TESTS="${ARROW_ENABLE_TIMING_TESTS:-ON}" \
220+
-DARROW_EXTRA_ERROR_CONTEXT="${ARROW_EXTRA_ERROR_CONTEXT:-OFF}" \
221+
-DARROW_FILESYSTEM="${ARROW_FILESYSTEM:-ON}" \
222+
-DARROW_FLIGHT="${ARROW_FLIGHT:-OFF}" \
223+
-DARROW_FLIGHT_SQL="${ARROW_FLIGHT_SQL:-OFF}" \
224+
-DARROW_FLIGHT_SQL_ODBC="${ARROW_FLIGHT_SQL_ODBC:-OFF}" \
225+
-DARROW_FLIGHT_SQL_ODBC_INSTALLER="${ARROW_FLIGHT_SQL_ODBC_INSTALLER:-OFF}" \
226+
-DARROW_FUZZING="${ARROW_FUZZING:-OFF}" \
227+
-DARROW_GANDIVA_PC_CXX_FLAGS="${ARROW_GANDIVA_PC_CXX_FLAGS:-}" \
228+
-DARROW_GANDIVA="${ARROW_GANDIVA:-OFF}" \
229+
-DARROW_GCS="${ARROW_GCS:-OFF}" \
230+
-DARROW_HDFS="${ARROW_HDFS:-ON}" \
231+
-DARROW_INSTALL_NAME_RPATH="${ARROW_INSTALL_NAME_RPATH:-ON}" \
232+
-DARROW_JEMALLOC="${ARROW_JEMALLOC:-OFF}" \
233+
-DARROW_JSON="${ARROW_JSON:-ON}" \
234+
-DARROW_LARGE_MEMORY_TESTS="${ARROW_LARGE_MEMORY_TESTS:-OFF}" \
235+
-DARROW_MIMALLOC="${ARROW_MIMALLOC:-ON}" \
236+
-DARROW_ORC="${ARROW_ORC:-OFF}" \
237+
-DARROW_PARQUET="${ARROW_PARQUET:-OFF}" \
238+
-DARROW_RUNTIME_SIMD_LEVEL="${ARROW_RUNTIME_SIMD_LEVEL:-MAX}" \
239+
-DARROW_S3="${ARROW_S3:-OFF}" \
240+
-DARROW_S3_MODULE="${ARROW_S3_MODULE:-OFF}" \
241+
-DARROW_SIMD_LEVEL="${ARROW_SIMD_LEVEL:-DEFAULT}" \
242+
-DARROW_SUBSTRAIT="${ARROW_SUBSTRAIT:-OFF}" \
243+
-DARROW_TEST_LINKAGE="${ARROW_TEST_LINKAGE:-shared}" \
244+
-DARROW_TEST_MEMCHECK="${ARROW_TEST_MEMCHECK:-OFF}" \
245+
-DARROW_USE_ASAN="${ARROW_USE_ASAN:-OFF}" \
246+
-DARROW_USE_CCACHE="${ARROW_USE_CCACHE:-ON}" \
247+
-DARROW_USE_GLOG="${ARROW_USE_GLOG:-OFF}" \
248+
-DARROW_USE_LLD="${ARROW_USE_LLD:-OFF}" \
249+
-DARROW_USE_MOLD="${ARROW_USE_MOLD:-OFF}" \
250+
-DARROW_USE_STATIC_CRT="${ARROW_USE_STATIC_CRT:-OFF}" \
251+
-DARROW_USE_TSAN="${ARROW_USE_TSAN:-OFF}" \
252+
-DARROW_USE_UBSAN="${ARROW_USE_UBSAN:-OFF}" \
253+
-DARROW_VERBOSE_THIRDPARTY_BUILD="${ARROW_VERBOSE_THIRDPARTY_BUILD:-OFF}" \
254+
-DARROW_WITH_BROTLI="${ARROW_WITH_BROTLI:-OFF}" \
255+
-DARROW_WITH_BZ2="${ARROW_WITH_BZ2:-OFF}" \
256+
-DARROW_WITH_LZ4="${ARROW_WITH_LZ4:-OFF}" \
257+
-DARROW_WITH_OPENTELEMETRY="${ARROW_WITH_OPENTELEMETRY:-OFF}" \
258+
-DARROW_WITH_MUSL="${ARROW_WITH_MUSL:-OFF}" \
259+
-DARROW_WITH_SNAPPY="${ARROW_WITH_SNAPPY:-OFF}" \
260+
-DARROW_WITH_UTF8PROC="${ARROW_WITH_UTF8PROC:-ON}" \
261+
-DARROW_WITH_ZLIB="${ARROW_WITH_ZLIB:-OFF}" \
262+
-DARROW_WITH_ZSTD="${ARROW_WITH_ZSTD:-OFF}" \
263+
-DAWSSDK_SOURCE="${AWSSDK_SOURCE:-}" \
264+
-DAzure_SOURCE="${Azure_SOURCE:-}" \
265+
-Dbenchmark_SOURCE="${benchmark_SOURCE:-}" \
266+
-DBOOST_SOURCE="${BOOST_SOURCE:-}" \
267+
-DBrotli_SOURCE="${Brotli_SOURCE:-}" \
268+
-DBUILD_WARNING_LEVEL="${BUILD_WARNING_LEVEL:-CHECKIN}" \
269+
-Dc-ares_SOURCE="${cares_SOURCE:-}" \
270+
-DCMAKE_BUILD_TYPE="${ARROW_BUILD_TYPE:-debug}" \
271+
-DCMAKE_VERBOSE_MAKEFILE="${CMAKE_VERBOSE_MAKEFILE:-OFF}" \
263272
-DCMAKE_C_FLAGS="${CFLAGS:-}" \
264273
-DCMAKE_CXX_FLAGS="${CXXFLAGS:-}" \
265274
-DCMAKE_CXX_STANDARD="${CMAKE_CXX_STANDARD:-20}" \
266-
-DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR:-lib} \
267-
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX:-${ARROW_HOME}} \
268-
-DCMAKE_MSVC_DEBUG_INFORMATION_FORMAT=${CMAKE_MSVC_DEBUG_INFORMATION_FORMAT:-} \
269-
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD:-OFF} \
270-
-DCUDAToolkit_ROOT=${CUDAToolkit_ROOT:-} \
271-
-Dgflags_SOURCE=${gflags_SOURCE:-} \
272-
-Dgoogle_cloud_cpp_storage_SOURCE=${google_cloud_cpp_storage_SOURCE:-} \
273-
-DgRPC_SOURCE=${gRPC_SOURCE:-} \
274-
-DGTest_SOURCE=${GTest_SOURCE:-} \
275-
-Dlz4_SOURCE=${lz4_SOURCE:-} \
276-
-Dnlohmann_json_SOURCE=${nlohmann_json_SOURCE:-} \
277-
-Dopentelemetry-cpp_SOURCE=${opentelemetry_cpp_SOURCE:-} \
278-
-DORC_SOURCE=${ORC_SOURCE:-} \
279-
-DPARQUET_BUILD_EXAMPLES=${PARQUET_BUILD_EXAMPLES:-OFF} \
280-
-DPARQUET_BUILD_EXECUTABLES=${PARQUET_BUILD_EXECUTABLES:-OFF} \
281-
-DPARQUET_REQUIRE_ENCRYPTION=${PARQUET_REQUIRE_ENCRYPTION:-ON} \
282-
-DProtobuf_SOURCE=${Protobuf_SOURCE:-} \
283-
-DRapidJSON_SOURCE=${RapidJSON_SOURCE:-} \
284-
-Dre2_SOURCE=${re2_SOURCE:-} \
285-
-DSnappy_SOURCE=${Snappy_SOURCE:-} \
286-
-DThrift_SOURCE=${Thrift_SOURCE:-} \
287-
-Dutf8proc_SOURCE=${utf8proc_SOURCE:-} \
288-
-Dzstd_SOURCE=${zstd_SOURCE:-} \
289-
-Dxsimd_SOURCE=${xsimd_SOURCE:-} \
275+
-DCMAKE_INSTALL_LIBDIR="${CMAKE_INSTALL_LIBDIR:-lib}" \
276+
-DCMAKE_INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX:-${ARROW_HOME}}" \
277+
-DCMAKE_MSVC_DEBUG_INFORMATION_FORMAT="${CMAKE_MSVC_DEBUG_INFORMATION_FORMAT:-}" \
278+
-DCMAKE_UNITY_BUILD="${CMAKE_UNITY_BUILD:-OFF}" \
279+
-DCUDAToolkit_ROOT="${CUDAToolkit_ROOT:-}" \
280+
-Dgflags_SOURCE="${gflags_SOURCE:-}" \
281+
-Dgoogle_cloud_cpp_storage_SOURCE="${google_cloud_cpp_storage_SOURCE:-}" \
282+
-DgRPC_SOURCE="${gRPC_SOURCE:-}" \
283+
-DGTest_SOURCE="${GTest_SOURCE:-}" \
284+
-Dlz4_SOURCE="${lz4_SOURCE:-}" \
285+
-Dnlohmann_json_SOURCE="${nlohmann_json_SOURCE:-}" \
286+
-Dopentelemetry-cpp_SOURCE="${opentelemetry_cpp_SOURCE:-}" \
287+
-DORC_SOURCE="${ORC_SOURCE:-}" \
288+
-DPARQUET_BUILD_EXAMPLES="${PARQUET_BUILD_EXAMPLES:-OFF}" \
289+
-DPARQUET_BUILD_EXECUTABLES="${PARQUET_BUILD_EXECUTABLES:-OFF}" \
290+
-DPARQUET_REQUIRE_ENCRYPTION="${PARQUET_REQUIRE_ENCRYPTION:-ON}" \
291+
-DProtobuf_SOURCE="${Protobuf_SOURCE:-}" \
292+
-DRapidJSON_SOURCE="${RapidJSON_SOURCE:-}" \
293+
-Dre2_SOURCE="${re2_SOURCE:-}" \
294+
-DSnappy_SOURCE="${Snappy_SOURCE:-}" \
295+
-DThrift_SOURCE="${Thrift_SOURCE:-}" \
296+
-Dutf8proc_SOURCE="${utf8proc_SOURCE:-}" \
297+
-Dzstd_SOURCE="${zstd_SOURCE:-}" \
298+
-Dxsimd_SOURCE="${xsimd_SOURCE:-}" \
290299
-G "${CMAKE_GENERATOR:-Ninja}" \
291-
${ARROW_CMAKE_ARGS} \
292-
${source_dir}
300+
"${ARROW_CMAKE_ARGS_ARRAY[@]}" \
301+
"${source_dir}"
293302
fi
294303

295-
: ${ARROW_BUILD_PARALLEL:=$[${n_jobs} + 1]}
304+
: "${ARROW_BUILD_PARALLEL:=$((n_jobs + 1))}"
296305
if [ "${ARROW_USE_MESON:-OFF}" = "ON" ]; then
297-
time meson compile -j ${ARROW_BUILD_PARALLEL}
306+
time meson compile -j "${ARROW_BUILD_PARALLEL}"
298307
meson install
299308
# Remove all added files in cpp/subprojects/ because they may have
300309
# unreadable permissions on Docker host.
301310
pushd "${source_dir}"
302311
meson subprojects purge --confirm --include-cache
303312
popd
304313
else
305-
: ${CMAKE_BUILD_PARALLEL_LEVEL:=${ARROW_BUILD_PARALLEL}}
314+
: "${CMAKE_BUILD_PARALLEL_LEVEL:=${ARROW_BUILD_PARALLEL}}"
306315
export CMAKE_BUILD_PARALLEL_LEVEL
307316
time cmake --build . --target install
308317
fi
@@ -326,7 +335,7 @@ if [ -x "$(command -v ldconfig)" ]; then
326335
SUDO=
327336
fi
328337
fi
329-
${SUDO} ldconfig ${ARROW_HOME}/${CMAKE_INSTALL_LIBDIR:-lib}
338+
${SUDO} ldconfig "${ARROW_HOME}/${CMAKE_INSTALL_LIBDIR:-lib}"
330339
fi
331340

332341
if [ "${ARROW_USE_CCACHE}" == "ON" ]; then
@@ -340,7 +349,7 @@ if command -v sccache &> /dev/null; then
340349
fi
341350

342351
if [ "${BUILD_DOCS_CPP}" == "ON" ]; then
343-
pushd ${source_dir}/apidoc
352+
pushd "${source_dir}/apidoc"
344353
OUTPUT_DIRECTORY=${build_dir}/apidoc doxygen
345354
popd
346355
fi

0 commit comments

Comments
 (0)