This is an automated email from the ASF dual-hosted git repository.
kou pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/main by this push:
new a708225ea6 GH-50855: [R] Fix shellcheck errors in the
r/inst/build_arrow_static.sh (#50856)
a708225ea6 is described below
commit a708225ea615c5d1bb2a927a87fc34593bf1f6a3
Author: Hiroyuki Sato <[email protected]>
AuthorDate: Fri Aug 14 10:15:43 2026 +0900
GH-50855: [R] Fix shellcheck errors in the r/inst/build_arrow_static.sh
(#50856)
### Rationale for this change
This is the sub issue #44748.
* SC2086: Double quote to prevent globbing and word splitting.
* SC2223: This default assignment may cause DoS due to globbing. Quote it.
* SC2006: Use $(...) notation instead of legacy backticked `...`.
```
shellcheck r/inst/build_arrow_static.sh
In r/inst/build_arrow_static.sh line 29:
: ${ARROW_HOME:="$(pwd)"} # Only used in default
SOURCE/BUILD dirs
^---------------------^ SC2223 (info): This default assignment may cause
DoS due to globbing. Quote it.
In r/inst/build_arrow_static.sh line 30:
: ${SOURCE_DIR:="${ARROW_HOME}/cpp"} # Where the C++ source is
^-- SC2223 (info): This default assignment may cause DoS due to globbing.
Quote it.
In r/inst/build_arrow_static.sh line 31:
: ${BUILD_DIR:="${ARROW_HOME}/r/libarrow/dist"} # Where cmake should build
^-- SC2223 (info): This default assignment may cause DoS due to globbing.
Quote it.
In r/inst/build_arrow_static.sh line 32:
: ${DEST_DIR:="$BUILD_DIR"} # Where the resulting /lib
and /include should be
^-----------------------^ SC2223 (info): This default assignment may
cause DoS due to globbing. Quote it.
In r/inst/build_arrow_static.sh line 33:
: ${CMAKE:="$(which cmake)"}
^------------------------^ SC2223 (info): This default assignment may
cause DoS due to globbing. Quote it.
In r/inst/build_arrow_static.sh line 40:
if [ "`uname -s`" = "Darwin" ]; then
^--------^ SC2006 (style): Use $(...) notation instead of legacy
backticks `...`.
Did you mean:
if [ "$(uname -s)" = "Darwin" ]; then
In r/inst/build_arrow_static.sh line 49:
LIBARROW_MINIMAL=`echo $LIBARROW_MINIMAL | tr '[:upper:]' '[:lower:]'`
^-- SC2006 (style): Use $(...) notation instead of
legacy backticks `...`.
^---------------^ SC2086 (info): Double quote to
prevent globbing and word splitting.
Did you mean:
LIBARROW_MINIMAL=$(echo "$LIBARROW_MINIMAL" | tr '[:upper:]' '[:lower:]')
In r/inst/build_arrow_static.sh line 66:
: ${CMAKE_WRAPPER:=""}
^------------------^ SC2223 (info): This default assignment may cause DoS
due to globbing. Quote it.
In r/inst/build_arrow_static.sh line 70:
${CMAKE_WRAPPER} ${CMAKE} -DARROW_BOOST_USE_SHARED=OFF \
^------^ SC2086 (info): Double quote to prevent globbing
and word splitting.
Did you mean:
${CMAKE_WRAPPER} "${CMAKE}" -DARROW_BOOST_USE_SHARED=OFF \
In r/inst/build_arrow_static.sh line 75:
-DARROW_ACERO=${ARROW_ACERO:-ON} \
^----------------^ SC2086 (info): Double quote to prevent
globbing and word splitting.
Did you mean:
-DARROW_ACERO="${ARROW_ACERO:-ON}" \
In r/inst/build_arrow_static.sh line 78:
-DARROW_DATASET=${ARROW_DATASET:-ON} \
^------------------^ SC2086 (info): Double quote to
prevent globbing and word splitting.
Did you mean:
-DARROW_DATASET="${ARROW_DATASET:-ON}" \
In r/inst/build_arrow_static.sh line 79:
-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 r/inst/build_arrow_static.sh line 80:
-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 r/inst/build_arrow_static.sh line 81:
-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 r/inst/build_arrow_static.sh line 82:
-DAWSSDK_SOURCE=${AWSSDK_SOURCE:-} \
^----------------^ SC2086 (info): Double quote to
prevent globbing and word splitting.
Did you mean:
-DAWSSDK_SOURCE="${AWSSDK_SOURCE:-}" \
In r/inst/build_arrow_static.sh line 83:
-DBoost_SOURCE=${Boost_SOURCE:-} \
^---------------^ SC2086 (info): Double quote to prevent
globbing and word splitting.
Did you mean:
-DBoost_SOURCE="${Boost_SOURCE:-}" \
In r/inst/build_arrow_static.sh line 84:
-Dlz4_SOURCE=${lz4_SOURCE:-} \
^-------------^ SC2086 (info): Double quote to prevent
globbing and word splitting.
Did you mean:
-Dlz4_SOURCE="${lz4_SOURCE:-}" \
In r/inst/build_arrow_static.sh line 86:
-DARROW_GCS=${ARROW_GCS:-OFF} \
^---------------^ SC2086 (info): Double quote to prevent
globbing and word splitting.
Did you mean:
-DARROW_GCS="${ARROW_GCS:-OFF}" \
In r/inst/build_arrow_static.sh line 87:
-DARROW_AZURE=${ARROW_AZURE:-$ARROW_DEFAULT_PARAM} \
^-- SC2086 (info): Double quote to prevent globbing and
word splitting.
Did you mean:
-DARROW_AZURE="${ARROW_AZURE:-$ARROW_DEFAULT_PARAM}" \
In r/inst/build_arrow_static.sh line 88:
-DARROW_JEMALLOC=${ARROW_JEMALLOC:-$ARROW_DEFAULT_PARAM} \
^-- SC2086 (info): Double quote to prevent globbing
and word splitting.
Did you mean:
-DARROW_JEMALLOC="${ARROW_JEMALLOC:-$ARROW_DEFAULT_PARAM}" \
In r/inst/build_arrow_static.sh line 89:
-DARROW_MIMALLOC=${ARROW_MIMALLOC:-ON} \
^-------------------^ SC2086 (info): Double quote to
prevent globbing and word splitting.
Did you mean:
-DARROW_MIMALLOC="${ARROW_MIMALLOC:-ON}" \
In r/inst/build_arrow_static.sh line 90:
-DARROW_JSON=${ARROW_JSON:-ON} \
^---------------^ SC2086 (info): Double quote to prevent
globbing and word splitting.
Did you mean:
-DARROW_JSON="${ARROW_JSON:-ON}" \
In r/inst/build_arrow_static.sh line 91:
-DARROW_PARQUET=${ARROW_PARQUET:-ON} \
^------------------^ SC2086 (info): Double quote to
prevent globbing and word splitting.
Did you mean:
-DARROW_PARQUET="${ARROW_PARQUET:-ON}" \
In r/inst/build_arrow_static.sh line 92:
-DARROW_S3=${ARROW_S3:-$ARROW_DEFAULT_PARAM} \
^-- SC2086 (info): Double quote to prevent globbing and word
splitting.
Did you mean:
-DARROW_S3="${ARROW_S3:-$ARROW_DEFAULT_PARAM}" \
In r/inst/build_arrow_static.sh line 93:
-DARROW_WITH_BROTLI=${ARROW_WITH_BROTLI:-$ARROW_DEFAULT_PARAM} \
^-- SC2086 (info): Double quote to prevent globbing
and word splitting.
Did you mean:
-DARROW_WITH_BROTLI="${ARROW_WITH_BROTLI:-$ARROW_DEFAULT_PARAM}" \
In r/inst/build_arrow_static.sh line 94:
-DARROW_WITH_BZ2=${ARROW_WITH_BZ2:-$ARROW_DEFAULT_PARAM} \
^-- SC2086 (info): Double quote to prevent globbing
and word splitting.
Did you mean:
-DARROW_WITH_BZ2="${ARROW_WITH_BZ2:-$ARROW_DEFAULT_PARAM}" \
In r/inst/build_arrow_static.sh line 95:
-DARROW_WITH_LZ4=${ARROW_WITH_LZ4:-ON} \
^-------------------^ SC2086 (info): Double quote to
prevent globbing and word splitting.
Did you mean:
-DARROW_WITH_LZ4="${ARROW_WITH_LZ4:-ON}" \
In r/inst/build_arrow_static.sh line 96:
-DARROW_WITH_RE2=${ARROW_WITH_RE2:-ON} \
^-------------------^ SC2086 (info): Double quote to
prevent globbing and word splitting.
Did you mean:
-DARROW_WITH_RE2="${ARROW_WITH_RE2:-ON}" \
In r/inst/build_arrow_static.sh line 97:
-DARROW_WITH_SNAPPY=${ARROW_WITH_SNAPPY:-ON} \
^----------------------^ SC2086 (info): Double
quote to prevent globbing and word splitting.
Did you mean:
-DARROW_WITH_SNAPPY="${ARROW_WITH_SNAPPY:-ON}" \
In r/inst/build_arrow_static.sh line 98:
-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 r/inst/build_arrow_static.sh line 99:
-DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB:-$ARROW_DEFAULT_PARAM} \
^-- SC2086 (info): Double quote to prevent globbing
and word splitting.
Did you mean:
-DARROW_WITH_ZLIB="${ARROW_WITH_ZLIB:-$ARROW_DEFAULT_PARAM}" \
In r/inst/build_arrow_static.sh line 100:
-DARROW_WITH_ZSTD=${ARROW_WITH_ZSTD:-$ARROW_DEFAULT_PARAM} \
^-- SC2086 (info): Double quote to prevent globbing
and word splitting.
Did you mean:
-DARROW_WITH_ZSTD="${ARROW_WITH_ZSTD:-$ARROW_DEFAULT_PARAM}" \
In r/inst/build_arrow_static.sh line 101:
-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 r/inst/build_arrow_static.sh line 102:
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE:-Release} \
^--------------------------^ SC2086 (info): Double
quote to prevent globbing and word splitting.
Did you mean:
-DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE:-Release}" \
In r/inst/build_arrow_static.sh line 103:
-DCMAKE_FIND_DEBUG_MODE=${CMAKE_FIND_DEBUG_MODE:-OFF} \
^---------------------------^ SC2086 (info):
Double quote to prevent globbing and word splitting.
Did you mean:
-DCMAKE_FIND_DEBUG_MODE="${CMAKE_FIND_DEBUG_MODE:-OFF}" \
In r/inst/build_arrow_static.sh line 105:
-DCMAKE_INSTALL_PREFIX=${DEST_DIR} \
^---------^ SC2086 (info): Double quote to
prevent globbing and word splitting.
Did you mean:
-DCMAKE_INSTALL_PREFIX="${DEST_DIR}" \
In r/inst/build_arrow_static.sh line 108:
-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 r/inst/build_arrow_static.sh line 109:
-DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR} \
^-----------------^ SC2086 (info): Double quote to
prevent globbing and word splitting.
Did you mean:
-DOPENSSL_ROOT_DIR="${OPENSSL_ROOT_DIR}" \
In r/inst/build_arrow_static.sh line 110:
-Dabsl_SOURCE=${absl_SOURCE:-BUNDLED} \
^---------------------^ SC2086 (info): Double quote to
prevent globbing and word splitting.
Did you mean:
-Dabsl_SOURCE="${absl_SOURCE:-BUNDLED}" \
In r/inst/build_arrow_static.sh line 111:
-Dre2_SOURCE=${re2_SOURCE:-BUNDLED} \
^--------------------^ SC2086 (info): Double quote to
prevent globbing and word splitting.
Did you mean:
-Dre2_SOURCE="${re2_SOURCE:-BUNDLED}" \
In r/inst/build_arrow_static.sh line 112:
-Dsimdjson_SOURCE=${simdjson_SOURCE:-BUNDLED} \
^-------------------------^ SC2086 (info): Double
quote to prevent globbing and word splitting.
Did you mean:
-Dsimdjson_SOURCE="${simdjson_SOURCE:-BUNDLED}" \
In r/inst/build_arrow_static.sh line 113:
-Dxsimd_SOURCE=${xsimd_SOURCE:-} \
^---------------^ SC2086 (info): Double quote to prevent
globbing and word splitting.
Did you mean:
-Dxsimd_SOURCE="${xsimd_SOURCE:-}" \
In r/inst/build_arrow_static.sh line 114:
-Dzstd_SOURCE=${zstd_SOURCE:-} \
^--------------^ SC2086 (info): Double quote to prevent
globbing and word splitting.
Did you mean:
-Dzstd_SOURCE="${zstd_SOURCE:-}" \
In r/inst/build_arrow_static.sh line 115:
${EXTRA_CMAKE_FLAGS} \
^------------------^ SC2086 (info): Double quote to prevent globbing
and word splitting.
Did you mean:
"${EXTRA_CMAKE_FLAGS}" \
In r/inst/build_arrow_static.sh line 117:
${SOURCE_DIR}
^-----------^ SC2086 (info): Double quote to prevent globbing and word
splitting.
Did you mean:
"${SOURCE_DIR}"
In r/inst/build_arrow_static.sh line 119:
${CMAKE} --build . --target install -- -j $N_JOBS
^-----^ SC2086 (info): Double
quote to prevent globbing and word splitting.
Did you mean:
${CMAKE} --build . --target install -- -j "$N_JOBS"
For more information:
https://www.shellcheck.net/wiki/SC2086 -- Double quote to prevent
globbing ...
https://www.shellcheck.net/wiki/SC2223 -- This default assignment may
cause...
https://www.shellcheck.net/wiki/SC2006 -- Use $(...) notation instead of
le...
```
### What changes are included in this PR?
* SC2086: Quote variable expansions to prevent globbing and word splitting.
* SC2223: Quote parameter expansion in default assignments to prevent
globbing.
* SC2006: Use $(...) notation instead of legacy backticked `...`.
### Are these changes tested?
Yes.
### Are there any user-facing changes?
No.
* GitHub Issue: #50855
Lead-authored-by: Hiroyuki Sato <[email protected]>
Co-authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
---
.pre-commit-config.yaml | 1 +
r/inst/build_arrow_static.sh | 101 +++++++++++++++++++++++--------------------
2 files changed, 56 insertions(+), 46 deletions(-)
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index fca235eea0..1277ad09f6 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -322,6 +322,7 @@ repos:
?^dev/release/utils-generate-checksum\.sh$|
?^dev/release/utils-watch-gh-workflow\.sh$|
?^r/tools/download_dependencies_R\.sh$|
+ ?^r/inst/build_arrow_static\.sh$|
?^swift/gen-protobuffers\.sh$|
)
- repo: https://github.com/scop/pre-commit-shfmt
diff --git a/r/inst/build_arrow_static.sh b/r/inst/build_arrow_static.sh
index 870e60055c..34a607cfb6 100755
--- a/r/inst/build_arrow_static.sh
+++ b/r/inst/build_arrow_static.sh
@@ -26,18 +26,18 @@ set -x
# By default, this script assumes it's in the top-level dir of the apache/arrow
# git repository. Set any of the following env vars to customize where to read
# and write from
-: ${ARROW_HOME:="$(pwd)"} # Only used in default
SOURCE/BUILD dirs
-: ${SOURCE_DIR:="${ARROW_HOME}/cpp"} # Where the C++ source is
-: ${BUILD_DIR:="${ARROW_HOME}/r/libarrow/dist"} # Where cmake should build
-: ${DEST_DIR:="$BUILD_DIR"} # Where the resulting /lib and
/include should be
-: ${CMAKE:="$(which cmake)"}
+: "${ARROW_HOME:=$(pwd)}" # Only used in default
SOURCE/BUILD dirs
+: "${SOURCE_DIR:=${ARROW_HOME}/cpp}" # Where the C++ source is
+: "${BUILD_DIR:=${ARROW_HOME}/r/libarrow/dist}" # Where cmake should build
+: "${DEST_DIR:=$BUILD_DIR}" # Where the resulting /lib and
/include should be
+: "${CMAKE:=$(which cmake)}"
# Make sure SOURCE and DEST dirs are absolute and exist
SOURCE_DIR="$(cd "${SOURCE_DIR}" && pwd)"
DEST_DIR="$(mkdir -p "${DEST_DIR}" && cd "${DEST_DIR}" && pwd)"
if [ "$N_JOBS" = "" ]; then
- if [ "`uname -s`" = "Darwin" ]; then
+ if [ "$(uname -s)" = "Darwin" ]; then
N_JOBS="$(sysctl -n hw.logicalcpu)"
else
N_JOBS="$(nproc)"
@@ -46,7 +46,7 @@ fi
# Make some env vars case-insensitive
if [ "$LIBARROW_MINIMAL" != "" ]; then
- LIBARROW_MINIMAL=`echo $LIBARROW_MINIMAL | tr '[:upper:]' '[:lower:]'`
+ LIBARROW_MINIMAL=$(echo "$LIBARROW_MINIMAL" | tr '[:upper:]' '[:lower:]')
fi
if [ "$LIBARROW_MINIMAL" = "false" ]; then
@@ -62,61 +62,70 @@ case "$CXX" in
;;
esac
+
+CMAKE_COMMAND=("${CMAKE}")
+
# Used for Emscripten
-: ${CMAKE_WRAPPER:=""}
+if [[ -n "${CMAKE_WRAPPER:-}" ]]; then
+ CMAKE_COMMAND=("${CMAKE_WRAPPER}" "${CMAKE_COMMAND[@]}")
+fi
+
+# Convert the space-separated options into a Bash array.
+# This avoids ShellCheck SC2086 and preserves argument boundaries.
+read -r -a ARROW_EXTRA_CMAKE_FLAGS <<< "${EXTRA_CMAKE_FLAGS}"
mkdir -p "${BUILD_DIR}"
pushd "${BUILD_DIR}"
-${CMAKE_WRAPPER} ${CMAKE} -DARROW_BOOST_USE_SHARED=OFF \
+"${CMAKE_COMMAND[@]}" -DARROW_BOOST_USE_SHARED=OFF \
-DARROW_SNAPPY_USE_SHARED=OFF \
-DARROW_BUILD_TESTS=OFF \
-DARROW_BUILD_SHARED=OFF \
-DARROW_BUILD_STATIC=ON \
- -DARROW_ACERO=${ARROW_ACERO:-ON} \
+ -DARROW_ACERO="${ARROW_ACERO:-ON}" \
-DARROW_COMPUTE=ON \
-DARROW_CSV=ON \
- -DARROW_DATASET=${ARROW_DATASET:-ON} \
- -DARROW_DEPENDENCY_SOURCE=${ARROW_DEPENDENCY_SOURCE:-AUTO} \
- -DARROW_DEPENDENCY_USE_SHARED=${ARROW_DEPENDENCY_USE_SHARED:-ON} \
- -DARROW_ENABLE_THREADING=${ARROW_ENABLE_THREADING:-ON} \
- -DAWSSDK_SOURCE=${AWSSDK_SOURCE:-} \
- -DBoost_SOURCE=${Boost_SOURCE:-} \
- -Dlz4_SOURCE=${lz4_SOURCE:-} \
+ -DARROW_DATASET="${ARROW_DATASET:-ON}" \
+ -DARROW_DEPENDENCY_SOURCE="${ARROW_DEPENDENCY_SOURCE:-AUTO}" \
+ -DARROW_DEPENDENCY_USE_SHARED="${ARROW_DEPENDENCY_USE_SHARED:-ON}" \
+ -DARROW_ENABLE_THREADING="${ARROW_ENABLE_THREADING:-ON}" \
+ -DAWSSDK_SOURCE="${AWSSDK_SOURCE:-}" \
+ -DBoost_SOURCE="${Boost_SOURCE:-}" \
+ -Dlz4_SOURCE="${lz4_SOURCE:-}" \
-DARROW_FILESYSTEM=ON \
- -DARROW_GCS=${ARROW_GCS:-OFF} \
- -DARROW_AZURE=${ARROW_AZURE:-$ARROW_DEFAULT_PARAM} \
- -DARROW_JEMALLOC=${ARROW_JEMALLOC:-$ARROW_DEFAULT_PARAM} \
- -DARROW_MIMALLOC=${ARROW_MIMALLOC:-ON} \
- -DARROW_JSON=${ARROW_JSON:-ON} \
- -DARROW_PARQUET=${ARROW_PARQUET:-ON} \
- -DARROW_S3=${ARROW_S3:-$ARROW_DEFAULT_PARAM} \
- -DARROW_WITH_BROTLI=${ARROW_WITH_BROTLI:-$ARROW_DEFAULT_PARAM} \
- -DARROW_WITH_BZ2=${ARROW_WITH_BZ2:-$ARROW_DEFAULT_PARAM} \
- -DARROW_WITH_LZ4=${ARROW_WITH_LZ4:-ON} \
- -DARROW_WITH_RE2=${ARROW_WITH_RE2:-ON} \
- -DARROW_WITH_SNAPPY=${ARROW_WITH_SNAPPY:-ON} \
- -DARROW_WITH_UTF8PROC=${ARROW_WITH_UTF8PROC:-ON} \
- -DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB:-$ARROW_DEFAULT_PARAM} \
- -DARROW_WITH_ZSTD=${ARROW_WITH_ZSTD:-$ARROW_DEFAULT_PARAM} \
- -DARROW_VERBOSE_THIRDPARTY_BUILD=${ARROW_VERBOSE_THIRDPARTY_BUILD:-OFF} \
- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE:-Release} \
- -DCMAKE_FIND_DEBUG_MODE=${CMAKE_FIND_DEBUG_MODE:-OFF} \
+ -DARROW_GCS="${ARROW_GCS:-OFF}" \
+ -DARROW_AZURE="${ARROW_AZURE:-$ARROW_DEFAULT_PARAM}" \
+ -DARROW_JEMALLOC="${ARROW_JEMALLOC:-$ARROW_DEFAULT_PARAM}" \
+ -DARROW_MIMALLOC="${ARROW_MIMALLOC:-ON}" \
+ -DARROW_JSON="${ARROW_JSON:-ON}" \
+ -DARROW_PARQUET="${ARROW_PARQUET:-ON}" \
+ -DARROW_S3="${ARROW_S3:-$ARROW_DEFAULT_PARAM}" \
+ -DARROW_WITH_BROTLI="${ARROW_WITH_BROTLI:-$ARROW_DEFAULT_PARAM}" \
+ -DARROW_WITH_BZ2="${ARROW_WITH_BZ2:-$ARROW_DEFAULT_PARAM}" \
+ -DARROW_WITH_LZ4="${ARROW_WITH_LZ4:-ON}" \
+ -DARROW_WITH_RE2="${ARROW_WITH_RE2:-ON}" \
+ -DARROW_WITH_SNAPPY="${ARROW_WITH_SNAPPY:-ON}" \
+ -DARROW_WITH_UTF8PROC="${ARROW_WITH_UTF8PROC:-ON}" \
+ -DARROW_WITH_ZLIB="${ARROW_WITH_ZLIB:-$ARROW_DEFAULT_PARAM}" \
+ -DARROW_WITH_ZSTD="${ARROW_WITH_ZSTD:-$ARROW_DEFAULT_PARAM}" \
+ -DARROW_VERBOSE_THIRDPARTY_BUILD="${ARROW_VERBOSE_THIRDPARTY_BUILD:-OFF}" \
+ -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE:-Release}" \
+ -DCMAKE_FIND_DEBUG_MODE="${CMAKE_FIND_DEBUG_MODE:-OFF}" \
-DCMAKE_INSTALL_LIBDIR=lib \
- -DCMAKE_INSTALL_PREFIX=${DEST_DIR} \
+ -DCMAKE_INSTALL_PREFIX="${DEST_DIR}" \
-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON \
-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON \
- -DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD:-OFF} \
- -DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR} \
- -Dabsl_SOURCE=${absl_SOURCE:-BUNDLED} \
- -Dre2_SOURCE=${re2_SOURCE:-BUNDLED} \
- -Dsimdjson_SOURCE=${simdjson_SOURCE:-BUNDLED} \
- -Dxsimd_SOURCE=${xsimd_SOURCE:-} \
- -Dzstd_SOURCE=${zstd_SOURCE:-} \
- ${EXTRA_CMAKE_FLAGS} \
+ -DCMAKE_UNITY_BUILD="${CMAKE_UNITY_BUILD:-OFF}" \
+ -DOPENSSL_ROOT_DIR="${OPENSSL_ROOT_DIR}" \
+ -Dabsl_SOURCE="${absl_SOURCE:-BUNDLED}" \
+ -Dre2_SOURCE="${re2_SOURCE:-BUNDLED}" \
+ -Dsimdjson_SOURCE="${simdjson_SOURCE:-BUNDLED}" \
+ -Dxsimd_SOURCE="${xsimd_SOURCE:-}" \
+ -Dzstd_SOURCE="${zstd_SOURCE:-}" \
+ "${ARROW_EXTRA_CMAKE_FLAGS[@]}" \
-G "${CMAKE_GENERATOR:-Unix Makefiles}" \
- ${SOURCE_DIR}
+ "${SOURCE_DIR}"
-${CMAKE} --build . --target install -- -j $N_JOBS
+"${CMAKE}" --build . --target install -- -j "$N_JOBS"
if command -v sccache &> /dev/null; then
echo "=== sccache stats after the build ==="