-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathapache-arrow
64 lines (54 loc) · 2.41 KB
/
apache-arrow
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# Target version of arrow and MacOS
VERSION="${VERSION:0:6}"
# Flags for arrow 12 or higher
if [[ "${VERSION:0:2}" -ge 12 ]]; then
MOREFLAGS="-DARROW_R_WITH_ACERO"
MORELIBS="-larrow_acero"
if [ "x${OSTYPE:6:1}" = "x1" ]; then
bottle="https://github.com/autobrew/bundler/releases/download/apache-arrow-${VERSION}/apache-arrow-${VERSION}-high_sierra.tar.xz"
else
bottle="https://github.com/autobrew/bundler/releases/download/apache-arrow-${VERSION}/apache-arrow-${VERSION}-universal.tar.xz"
fi
else
if [ $(arch | grep arm) ]; then
bottle="https://autobrew.github.io/archive/arm64_big_sur/apache-arrow-${VERSION}-arm64_big_sur.tar.xz"
else
bottle="https://autobrew.github.io/archive/high_sierra/apache-arrow-${VERSION}-high_sierra.tar.xz"
fi
fi
# Hack for high-sierra only
if [ "x${OSTYPE:6:1}" = "x1" ]; then
MOREFLAGS="$MOREFLAGS -D_LIBCPP_DISABLE_AVAILABILITY"
fi
# Skip if disabled
if [ "$DISABLE_AUTOBREW" ]; then return 0; fi
echo "Using autobrew bundle: $(basename $bottle)"
# General setup
BREWDIR="$PWD/.deps"
mkdir -p $BREWDIR
curl -sSL $bottle -o libs.tar.xz
tar -xf libs.tar.xz --strip 1 -C $BREWDIR
rm -f libs.tar.xz
# Hardcoded flags
AWS_LIBS="-laws-cpp-sdk-config -laws-cpp-sdk-transfer -laws-cpp-sdk-identity-management -laws-cpp-sdk-cognito-identity -laws-cpp-sdk-sts -laws-cpp-sdk-s3 -laws-cpp-sdk-core -laws-c-event-stream -laws-checksums -laws-c-common"
# Aws-sdk-cpp 1.9.xxx requires extra flags
if [ -f "$BREWDIR/lib/libaws-crt-cpp.a" ]; then
echo "Linking to aws-sdk-cpp 1.9"
AWS_LIBS="$AWS_LIBS -laws-crt-cpp -laws-c-io -laws-c-s3 -laws-c-auth -laws-c-http -laws-c-cal -laws-c-compression -laws-c-mqtt"
fi
# Brotli was introduced in 9.0.0
if [ -f "$BREWDIR/lib/libbrotlienc-static.a" ]; then
BROTLI_LIBS="-lbrotlienc-static -lbrotlidec-static -lbrotlicommon-static"
fi
PKG_LIBS="-L$BREWDIR/lib -lparquet -larrow_dataset -larrow $MORELIBS -larrow_bundled_dependencies -lthrift -llz4 -lsnappy -lzstd $AWS_LIBS $BROTLI_LIBS -lssl -lcrypto -lpthread -lcurl"
PKG_CFLAGS="-I$BREWDIR/include -DARROW_R_WITH_PARQUET -DARROW_R_WITH_DATASET -DARROW_R_WITH_JSON -DARROW_R_WITH_S3 -DARROW_R_WITH_GCS $MOREFLAGS"
# Prevent linking against other libs in /usr/local/lib
for FILE in $BREWDIR/lib/*.a; do
BASENAME=$(basename $FILE)
LIBNAME=$(echo "${BASENAME%.*}" | cut -c4-)
cp -f $FILE $BREWDIR/lib/libbrew$LIBNAME.a
PKG_LIBS=$(echo $PKG_LIBS | sed "s/-l$LIBNAME /-lbrew$LIBNAME /g")
done
# Cleanup
echo "rm -Rf .deps" >> cleanup
chmod +x cleanup