From e6918187568dbd01842d8d1d2c808ce16a894239 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 21 Apr 2024 13:54:28 +0200 Subject: Adding upstream version 18.2.2. Signed-off-by: Daniel Baumann --- src/arrow/cpp/examples/minimal_build/.gitignore | 18 +++ .../cpp/examples/minimal_build/CMakeLists.txt | 40 +++++++ src/arrow/cpp/examples/minimal_build/README.md | 88 +++++++++++++++ .../cpp/examples/minimal_build/build_arrow.sh | 35 ++++++ .../cpp/examples/minimal_build/build_example.sh | 27 +++++ .../cpp/examples/minimal_build/docker-compose.yml | 51 +++++++++ src/arrow/cpp/examples/minimal_build/example.cc | 69 ++++++++++++ .../cpp/examples/minimal_build/minimal.dockerfile | 27 +++++ src/arrow/cpp/examples/minimal_build/run.sh | 48 ++++++++ .../cpp/examples/minimal_build/run_static.bat | 88 +++++++++++++++ src/arrow/cpp/examples/minimal_build/run_static.sh | 121 +++++++++++++++++++++ .../minimal_build/system_dependency.dockerfile | 44 ++++++++ src/arrow/cpp/examples/minimal_build/test.csv | 3 + 13 files changed, 659 insertions(+) create mode 100644 src/arrow/cpp/examples/minimal_build/.gitignore create mode 100644 src/arrow/cpp/examples/minimal_build/CMakeLists.txt create mode 100644 src/arrow/cpp/examples/minimal_build/README.md create mode 100755 src/arrow/cpp/examples/minimal_build/build_arrow.sh create mode 100755 src/arrow/cpp/examples/minimal_build/build_example.sh create mode 100644 src/arrow/cpp/examples/minimal_build/docker-compose.yml create mode 100644 src/arrow/cpp/examples/minimal_build/example.cc create mode 100644 src/arrow/cpp/examples/minimal_build/minimal.dockerfile create mode 100755 src/arrow/cpp/examples/minimal_build/run.sh create mode 100644 src/arrow/cpp/examples/minimal_build/run_static.bat create mode 100755 src/arrow/cpp/examples/minimal_build/run_static.sh create mode 100644 src/arrow/cpp/examples/minimal_build/system_dependency.dockerfile create mode 100644 src/arrow/cpp/examples/minimal_build/test.csv (limited to 'src/arrow/cpp/examples/minimal_build') diff --git a/src/arrow/cpp/examples/minimal_build/.gitignore b/src/arrow/cpp/examples/minimal_build/.gitignore new file mode 100644 index 000000000..c94f3ec42 --- /dev/null +++ b/src/arrow/cpp/examples/minimal_build/.gitignore @@ -0,0 +1,18 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +test.arrow diff --git a/src/arrow/cpp/examples/minimal_build/CMakeLists.txt b/src/arrow/cpp/examples/minimal_build/CMakeLists.txt new file mode 100644 index 000000000..9fc20c70f --- /dev/null +++ b/src/arrow/cpp/examples/minimal_build/CMakeLists.txt @@ -0,0 +1,40 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +cmake_minimum_required(VERSION 3.0) + +project(ArrowMinimalExample) + +option(ARROW_LINK_SHARED "Link to the Arrow shared library" ON) + +find_package(Arrow REQUIRED) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_BUILD_TYPE Release) + +message(STATUS "Arrow version: ${ARROW_VERSION}") +message(STATUS "Arrow SO version: ${ARROW_FULL_SO_VERSION}") + +add_executable(arrow_example example.cc) + +if (ARROW_LINK_SHARED) + target_link_libraries(arrow_example PRIVATE arrow_shared) +else() + set(THREADS_PREFER_PTHREAD_FLAG ON) + find_package(Threads REQUIRED) + target_link_libraries(arrow_example PRIVATE arrow_static Threads::Threads) +endif() diff --git a/src/arrow/cpp/examples/minimal_build/README.md b/src/arrow/cpp/examples/minimal_build/README.md new file mode 100644 index 000000000..9f889f6ad --- /dev/null +++ b/src/arrow/cpp/examples/minimal_build/README.md @@ -0,0 +1,88 @@ + + +# Minimal C++ build example + +This directory showcases a minimal build of Arrow C++ (in `build_arrow.sh`). +This minimal build is then used by an example third-party C++ project +using CMake logic to compile and link against the Arrow C++ library +(in `build_example.sh` and `CMakeLists.txt`). + +When run, the example executable reads a file named `test.csv`, +displays its parsed contents, and then saves them in Arrow IPC format in +a file named `test.arrow`. + +## Running the example + +You can run this simple example using [Docker Compose][docker-compose] +and the given `docker-compose.yml` and dockerfiles, which installs a +minimal Ubuntu image with a basic C++ toolchain. + +Just open a terminal in this directory and run the following commands: + +```bash +docker-compose run --rm minimal +``` + +Note that this example mounts two volumes inside the Docker image: +* `/arrow` points to the Arrow source tree +* `/io` points to this example directory + +## Statically-linked builds + +We've provided an example build configuration here with CMake to show how to +create a statically-linked executable with bundled dependencies. + +To run it on Linux, you can use the above Docker image: + +```bash +docker-compose run --rm static +``` + +On macOS, you can use the `run_static.sh` but you must set some environment +variables to point the script to your Arrow checkout, for example: + +```bash +export ARROW_DIR=path/to/arrow-clone +export EXAMPLE_DIR=$ARROW_DIR/cpp/examples/minimal_build +export ARROW_BUILD_DIR=$(pwd)/arrow-build +export EXAMPLE_BUILD_DIR=$(pwd)/example + +./run_static.sh +``` + +On Windows, you can run `run_static.bat` from the command prompt with Visual +Studio's command line tools enabled and CMake and ninja build in the path: + +``` +call run_static.bat +``` + +### Static linking against system libraries + +You can also use static libraries of Arrow's dependencies from the +system. To run this configuration, set +`ARROW_DEPENDENCY_SOURCE=SYSTEM` for `run_static.sh`. You can use +`docker-compose` for this too: + +```bash +docker-compose run --rm static-system-dependency +``` + +[docker-compose]: https://docs.docker.com/compose/ diff --git a/src/arrow/cpp/examples/minimal_build/build_arrow.sh b/src/arrow/cpp/examples/minimal_build/build_arrow.sh new file mode 100755 index 000000000..402c312e4 --- /dev/null +++ b/src/arrow/cpp/examples/minimal_build/build_arrow.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +set -ex + +NPROC=$(nproc) + +mkdir -p $ARROW_BUILD_DIR +pushd $ARROW_BUILD_DIR + +# Enable the CSV reader as it's used by the example third-party build +cmake /arrow/cpp \ + -DARROW_CSV=ON \ + -DARROW_JEMALLOC=OFF \ + $ARROW_CMAKE_OPTIONS + +make -j$NPROC +make install + +popd diff --git a/src/arrow/cpp/examples/minimal_build/build_example.sh b/src/arrow/cpp/examples/minimal_build/build_example.sh new file mode 100755 index 000000000..a315755a5 --- /dev/null +++ b/src/arrow/cpp/examples/minimal_build/build_example.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +set -ex + +mkdir -p $EXAMPLE_BUILD_DIR +pushd $EXAMPLE_BUILD_DIR + +cmake /io +make + +popd diff --git a/src/arrow/cpp/examples/minimal_build/docker-compose.yml b/src/arrow/cpp/examples/minimal_build/docker-compose.yml new file mode 100644 index 000000000..6e2dcef81 --- /dev/null +++ b/src/arrow/cpp/examples/minimal_build/docker-compose.yml @@ -0,0 +1,51 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +version: '3.5' + +services: + minimal: + build: + context: . + dockerfile: minimal.dockerfile + volumes: + - ../../../:/arrow:delegated + - .:/io:delegated + command: + - "/io/run.sh" + + static: + build: + context: . + dockerfile: minimal.dockerfile + volumes: + - ../../../:/arrow:delegated + - .:/io:delegated + command: + - "/io/run_static.sh" + + static-system-dependency: + build: + context: . + dockerfile: system_dependency.dockerfile + environment: + ARROW_DEPENDENCY_SOURCE: "SYSTEM" + volumes: + - ../../../:/arrow:delegated + - .:/io:delegated + command: + - "/io/run_static.sh" diff --git a/src/arrow/cpp/examples/minimal_build/example.cc b/src/arrow/cpp/examples/minimal_build/example.cc new file mode 100644 index 000000000..9bfb9953e --- /dev/null +++ b/src/arrow/cpp/examples/minimal_build/example.cc @@ -0,0 +1,69 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#include +#include +#include +#include +#include +#include +#include + +#include + +using arrow::Status; + +namespace { + +Status RunMain(int argc, char** argv) { + const char* csv_filename = "test.csv"; + const char* arrow_filename = "test.arrow"; + + std::cerr << "* Reading CSV file '" << csv_filename << "' into table" << std::endl; + ARROW_ASSIGN_OR_RAISE(auto input_file, arrow::io::ReadableFile::Open(csv_filename)); + ARROW_ASSIGN_OR_RAISE(auto csv_reader, arrow::csv::TableReader::Make( + arrow::io::default_io_context(), input_file, + arrow::csv::ReadOptions::Defaults(), + arrow::csv::ParseOptions::Defaults(), + arrow::csv::ConvertOptions::Defaults())); + ARROW_ASSIGN_OR_RAISE(auto table, csv_reader->Read()); + + std::cerr << "* Read table:" << std::endl; + ARROW_RETURN_NOT_OK(arrow::PrettyPrint(*table, {}, &std::cerr)); + + std::cerr << "* Writing table into Arrow IPC file '" << arrow_filename << "'" + << std::endl; + ARROW_ASSIGN_OR_RAISE(auto output_file, + arrow::io::FileOutputStream::Open(arrow_filename)); + ARROW_ASSIGN_OR_RAISE(auto batch_writer, + arrow::ipc::MakeFileWriter(output_file, table->schema())); + ARROW_RETURN_NOT_OK(batch_writer->WriteTable(*table)); + ARROW_RETURN_NOT_OK(batch_writer->Close()); + + return Status::OK(); +} + +} // namespace + +int main(int argc, char** argv) { + Status st = RunMain(argc, argv); + if (!st.ok()) { + std::cerr << st << std::endl; + return 1; + } + return 0; +} diff --git a/src/arrow/cpp/examples/minimal_build/minimal.dockerfile b/src/arrow/cpp/examples/minimal_build/minimal.dockerfile new file mode 100644 index 000000000..9361fc5e8 --- /dev/null +++ b/src/arrow/cpp/examples/minimal_build/minimal.dockerfile @@ -0,0 +1,27 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +FROM ubuntu:focal + +ENV DEBIAN_FRONTEND=noninteractive + +RUN apt-get update -y -q && \ + apt-get install -y -q --no-install-recommends \ + build-essential \ + cmake \ + pkg-config && \ + apt-get clean && rm -rf /var/lib/apt/lists* diff --git a/src/arrow/cpp/examples/minimal_build/run.sh b/src/arrow/cpp/examples/minimal_build/run.sh new file mode 100755 index 000000000..a76058b0b --- /dev/null +++ b/src/arrow/cpp/examples/minimal_build/run.sh @@ -0,0 +1,48 @@ +#!/usr/bin/env bash +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +set -e + +cd /io + +export ARROW_BUILD_DIR=/build/arrow +export EXAMPLE_BUILD_DIR=/build/example + +echo +echo "==" +echo "== Building Arrow C++ library" +echo "==" +echo + +./build_arrow.sh + +echo +echo "==" +echo "== Building example project using Arrow C++ library" +echo "==" +echo + +./build_example.sh + +echo +echo "==" +echo "== Running example project" +echo "==" +echo + +${EXAMPLE_BUILD_DIR}/arrow_example diff --git a/src/arrow/cpp/examples/minimal_build/run_static.bat b/src/arrow/cpp/examples/minimal_build/run_static.bat new file mode 100644 index 000000000..bbc7ff8f7 --- /dev/null +++ b/src/arrow/cpp/examples/minimal_build/run_static.bat @@ -0,0 +1,88 @@ +@rem Licensed to the Apache Software Foundation (ASF) under one +@rem or more contributor license agreements. See the NOTICE file +@rem distributed with this work for additional information +@rem regarding copyright ownership. The ASF licenses this file +@rem to you under the Apache License, Version 2.0 (the +@rem "License"); you may not use this file except in compliance +@rem with the License. You may obtain a copy of the License at +@rem +@rem http://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, +@rem software distributed under the License is distributed on an +@rem "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@rem KIND, either express or implied. See the License for the +@rem specific language governing permissions and limitations +@rem under the License. + +@echo on + +@rem clean up prior attempts +if exist "arrow-build" rd arrow-build /s /q +if exist "dist" rd dist /s /q +if exist "example" rd example /s /q + +echo +echo "==" +echo "== Building Arrow C++ library" +echo "==" +echo + +set INSTALL_PREFIX=%cd%\dist + +mkdir arrow-build +pushd arrow-build + +@rem bzip2_ep fails with this method + +cmake ..\..\.. ^ + -GNinja ^ + -DCMAKE_INSTALL_PREFIX=%INSTALL_PREFIX% ^ + -DARROW_DEPENDENCY_SOURCE=BUNDLED ^ + -DARROW_BUILD_SHARED=OFF ^ + -DARROW_BUILD_STATIC=ON ^ + -DARROW_COMPUTE=ON ^ + -DARROW_CSV=ON ^ + -DARROW_DATASET=ON ^ + -DARROW_FILESYSTEM=ON ^ + -DARROW_HDFS=ON ^ + -DARROW_JSON=ON ^ + -DARROW_MIMALLOC=ON ^ + -DARROW_ORC=ON ^ + -DARROW_PARQUET=ON ^ + -DARROW_PLASMA=ON ^ + -DARROW_WITH_BROTLI=ON ^ + -DARROW_WITH_BZ2=OFF ^ + -DARROW_WITH_LZ4=ON ^ + -DARROW_WITH_SNAPPY=ON ^ + -DARROW_WITH_ZLIB=ON ^ + -DARROW_WITH_ZSTD=ON + +ninja install + +popd + +echo +echo "==" +echo "== Building example project using Arrow C++ library" +echo "==" +echo + +mkdir example +pushd example + +cmake .. ^ + -GNinja ^ + -DCMAKE_PREFIX_PATH="%INSTALL_PREFIX%" ^ + -DARROW_LINK_SHARED=OFF +ninja + +popd + +echo +echo "==" +echo "== Running example project" +echo "==" +echo + +call example\arrow_example.exe diff --git a/src/arrow/cpp/examples/minimal_build/run_static.sh b/src/arrow/cpp/examples/minimal_build/run_static.sh new file mode 100755 index 000000000..ff3bb8945 --- /dev/null +++ b/src/arrow/cpp/examples/minimal_build/run_static.sh @@ -0,0 +1,121 @@ +#!/usr/bin/env bash +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +set -e + +: ${ARROW_DIR:=/arrow} +: ${EXAMPLE_DIR:=/io} +: ${ARROW_BUILD_DIR:=/build/arrow} +: ${EXAMPLE_BUILD_DIR:=/build/example} + +: ${ARROW_DEPENDENCY_SOURCE:=BUNDLED} + +echo +echo "==" +echo "== Building Arrow C++ library" +echo "==" +echo + +mkdir -p $ARROW_BUILD_DIR +pushd $ARROW_BUILD_DIR + +NPROC=$(nproc) + +cmake $ARROW_DIR/cpp \ + -DARROW_BUILD_SHARED=OFF \ + -DARROW_BUILD_STATIC=ON \ + -DARROW_COMPUTE=ON \ + -DARROW_CSV=ON \ + -DARROW_DATASET=ON \ + -DARROW_DEPENDENCY_SOURCE=${ARROW_DEPENDENCY_SOURCE} \ + -DARROW_DEPENDENCY_USE_SHARED=OFF \ + -DARROW_FILESYSTEM=ON \ + -DARROW_HDFS=ON \ + -DARROW_JEMALLOC=ON \ + -DARROW_JSON=ON \ + -DARROW_ORC=ON \ + -DARROW_PARQUET=ON \ + -DARROW_PLASMA=ON \ + -DARROW_WITH_BROTLI=ON \ + -DARROW_WITH_BZ2=ON \ + -DARROW_WITH_LZ4=ON \ + -DARROW_WITH_SNAPPY=ON \ + -DARROW_WITH_ZLIB=ON \ + -DARROW_WITH_ZSTD=ON \ + -DORC_SOURCE=BUNDLED \ + $ARROW_CMAKE_OPTIONS + +make -j$NPROC +make install + +popd + +echo +echo "==" +echo "== CMake:" +echo "== Building example project using Arrow C++ library" +echo "==" +echo + +rm -rf $EXAMPLE_BUILD_DIR +mkdir -p $EXAMPLE_BUILD_DIR +pushd $EXAMPLE_BUILD_DIR + +cmake $EXAMPLE_DIR -DARROW_LINK_SHARED=OFF +make + +popd + +echo +echo "==" +echo "== CMake:" +echo "== Running example project" +echo "==" +echo + +pushd $EXAMPLE_DIR + +$EXAMPLE_BUILD_DIR/arrow_example + +echo +echo "==" +echo "== pkg-config" +echo "== Building example project using Arrow C++ library" +echo "==" +echo + +rm -rf $EXAMPLE_BUILD_DIR +mkdir -p $EXAMPLE_BUILD_DIR +${CXX:-c++} \ + -o $EXAMPLE_BUILD_DIR/arrow_example \ + $EXAMPLE_DIR/example.cc \ + $(PKG_CONFIG_PATH=$ARROW_BUILD_DIR/lib/pkgconfig \ + pkg-config --cflags --libs --static arrow) + +popd + +echo +echo "==" +echo "== pkg-config:" +echo "== Running example project" +echo "==" +echo + +pushd $EXAMPLE_DIR + +$EXAMPLE_BUILD_DIR/arrow_example diff --git a/src/arrow/cpp/examples/minimal_build/system_dependency.dockerfile b/src/arrow/cpp/examples/minimal_build/system_dependency.dockerfile new file mode 100644 index 000000000..926fcaf6f --- /dev/null +++ b/src/arrow/cpp/examples/minimal_build/system_dependency.dockerfile @@ -0,0 +1,44 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +FROM ubuntu:focal + +ENV DEBIAN_FRONTEND=noninteractive + +RUN apt-get update -y -q && \ + apt-get install -y -q --no-install-recommends \ + build-essential \ + cmake \ + libboost-filesystem-dev \ + libboost-regex-dev \ + libboost-system-dev \ + libbrotli-dev \ + libbz2-dev \ + libgflags-dev \ + liblz4-dev \ + libprotobuf-dev \ + libprotoc-dev \ + libre2-dev \ + libsnappy-dev \ + libthrift-dev \ + libutf8proc-dev \ + libzstd-dev \ + pkg-config \ + protobuf-compiler \ + rapidjson-dev \ + zlib1g-dev && \ + apt-get clean && rm -rf /var/lib/apt/lists* diff --git a/src/arrow/cpp/examples/minimal_build/test.csv b/src/arrow/cpp/examples/minimal_build/test.csv new file mode 100644 index 000000000..ca2440852 --- /dev/null +++ b/src/arrow/cpp/examples/minimal_build/test.csv @@ -0,0 +1,3 @@ +Integers,Strings,Timestamps +1,Some,2018-11-13 17:11:10 +2,data,N/A -- cgit v1.2.3