- CMake 3.25 or higher
- C++23 compliant compiler
If you experience network issues when downloading dependencies, you can customize the download URLs using environment variables.
The following environment variables can be set to customize dependency URLs:
ICEBERG_ARROW_URL: Apache Arrow tarball URLICEBERG_AVRO_URL: Apache Avro tarball URLICEBERG_AVRO_GIT_URL: Apache Avro git repository URLICEBERG_NANOARROW_URL: Nanoarrow tarball URLICEBERG_CROARING_URL: CRoaring tarball URLICEBERG_NLOHMANN_JSON_URL: nlohmann-json tarball URLICEBERG_CPR_URL: cpr tarball URL
Example usage:
export ICEBERG_ARROW_URL="https://your-mirror.com/apache-arrow-22.0.0.tar.gz"
cmake -S . -B buildcd iceberg-cpp
cmake -S . -B build -G Ninja -DCMAKE_INSTALL_PREFIX=/path/to/install -DICEBERG_BUILD_STATIC=ON -DICEBERG_BUILD_SHARED=ON
cmake --build build
ctest --test-dir build --output-on-failure
cmake --install buildcmake -S . -B build -G Ninja -DCMAKE_INSTALL_PREFIX=/path/to/install -DICEBERG_BUILD_BUNDLE=ON
cmake --build build
ctest --test-dir build --output-on-failure
cmake --install buildcmake -S . -B build -G Ninja -DCMAKE_INSTALL_PREFIX=/path/to/install -DCMAKE_PREFIX_PATH=/path/to/arrow -DICEBERG_BUILD_BUNDLE=ON
cmake --build build
ctest --test-dir build --output-on-failure
cmake --install buildAfter installing the core libraries, you can build the examples:
cd iceberg-cpp/example
cmake -S . -B build -G Ninja -DCMAKE_PREFIX_PATH=/path/to/install
cmake --build buildIf you are using provided Apache Arrow, you need to include /path/to/arrow in CMAKE_PREFIX_PATH as below.
cmake -S . -B build -G Ninja -DCMAKE_PREFIX_PATH="/path/to/install;/path/to/arrow"