kou commented on code in PR #48223:
URL: https://github.com/apache/arrow/pull/48223#discussion_r2558261334


##########
ci/scripts/cpp_build.sh:
##########
@@ -141,164 +144,166 @@ 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 \

Review Comment:
   ```suggestion
       --preset="ninja-${ARROW_BUILD_TYPE:-debug}-emscripten" \
   ```



##########
ci/scripts/cpp_build.sh:
##########
@@ -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}"

Review Comment:
   ```suggestion
     ${SUDO} ldconfig "${ARROW_HOME}/${CMAKE_INSTALL_LIBDIR:-lib}"
   ```



##########
ci/scripts/cpp_build.sh:
##########
@@ -141,164 +144,166 @@ 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))}"

Review Comment:
   ```suggestion
   : "${ARROW_BUILD_PARALLEL:=$((n_jobs + 1))}"
   ```



##########
ci/scripts/cpp_build.sh:
##########
@@ -141,164 +144,166 @@ 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}" \

Review Comment:
   Is this safe?
   
   `ARROW_CMAKE_ARGS` may have multiple arguments such as `-DXXX=111 -DYYY=222`.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to