1#!/usr/bin/env bash 2# Licensed to the Apache Software Foundation (ASF) under one 3# or more contributor license agreements. See the NOTICE file 4# distributed with this work for additional information 5# regarding copyright ownership. The ASF licenses this file 6# to you under the Apache License, Version 2.0 (the 7# "License"); you may not use this file except in compliance 8# with the License. You may obtain a copy of the License at 9# 10# http://www.apache.org/licenses/LICENSE-2.0 11# 12# Unless required by applicable law or agreed to in writing, 13# software distributed under the License is distributed on an 14# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15# KIND, either express or implied. See the License for the 16# specific language governing permissions and limitations 17# under the License. 18 19set -e 20 21: ${ARROW_DIR:=/arrow} 22: ${EXAMPLE_DIR:=/io} 23: ${ARROW_BUILD_DIR:=/build/arrow} 24: ${EXAMPLE_BUILD_DIR:=/build/example} 25 26: ${ARROW_DEPENDENCY_SOURCE:=BUNDLED} 27 28echo 29echo "==" 30echo "== Building Arrow C++ library" 31echo "==" 32echo 33 34mkdir -p $ARROW_BUILD_DIR 35pushd $ARROW_BUILD_DIR 36 37NPROC=$(nproc) 38 39cmake $ARROW_DIR/cpp \ 40 -DARROW_BUILD_SHARED=OFF \ 41 -DARROW_BUILD_STATIC=ON \ 42 -DARROW_COMPUTE=ON \ 43 -DARROW_CSV=ON \ 44 -DARROW_DATASET=ON \ 45 -DARROW_DEPENDENCY_SOURCE=${ARROW_DEPENDENCY_SOURCE} \ 46 -DARROW_DEPENDENCY_USE_SHARED=OFF \ 47 -DARROW_FILESYSTEM=ON \ 48 -DARROW_HDFS=ON \ 49 -DARROW_JEMALLOC=ON \ 50 -DARROW_JSON=ON \ 51 -DARROW_ORC=ON \ 52 -DARROW_PARQUET=ON \ 53 -DARROW_PLASMA=ON \ 54 -DARROW_WITH_BROTLI=ON \ 55 -DARROW_WITH_BZ2=ON \ 56 -DARROW_WITH_LZ4=ON \ 57 -DARROW_WITH_SNAPPY=ON \ 58 -DARROW_WITH_ZLIB=ON \ 59 -DARROW_WITH_ZSTD=ON \ 60 -DORC_SOURCE=BUNDLED \ 61 $ARROW_CMAKE_OPTIONS 62 63make -j$NPROC 64make install 65 66popd 67 68echo 69echo "==" 70echo "== Building example project using Arrow C++ library" 71echo "==" 72echo 73 74mkdir -p $EXAMPLE_BUILD_DIR 75pushd $EXAMPLE_BUILD_DIR 76 77cmake $EXAMPLE_DIR -DARROW_LINK_SHARED=OFF 78make 79 80popd 81 82echo 83echo "==" 84echo "== Running example project" 85echo "==" 86echo 87 88pushd $EXAMPLE_DIR 89 90${EXAMPLE_BUILD_DIR}/arrow_example 91