diff --git a/.devcontainer/Dockerfile.template b/.devcontainer/Dockerfile.template index bfde82584..d69417fbf 100644 --- a/.devcontainer/Dockerfile.template +++ b/.devcontainer/Dockerfile.template @@ -38,7 +38,6 @@ RUN apt update && \ libssl-dev \ libxml2-dev \ lsb-release \ - meson \ ninja-build \ pkg-config \ python3 \ diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d260ef470..352da0d7a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -204,60 +204,3 @@ jobs: run: | $ErrorActionPreference = "Stop" bash -lc 'ci/scripts/build_example.sh $(pwd)/example' - meson: - if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft == false }} - name: Meson - ${{ matrix.title }} - runs-on: ${{ matrix.runs-on }} - timeout-minutes: 30 - strategy: - max-parallel: 15 - fail-fast: false - matrix: - include: - - title: AMD64 Ubuntu 26.04 - runs-on: ubuntu-26.04 - CC: gcc-14 - CXX: g++-14 - meson-setup-args: -Drest_integration_test=enabled - - title: AMD64 Windows 2025 - runs-on: windows-2025 - meson-setup-args: --vsenv - - title: AArch64 macOS 26 - runs-on: macos-26 - steps: - - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 - with: - python-version: '3.x' - - name: Checkout iceberg-cpp - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - with: - persist-credentials: false - - name: Install build dependencies - run: | - python3 -m pip install --upgrade pip - python3 -m pip install -r requirements.txt - - name: Set Ubuntu Compilers - # Wrap the compiler with sccache: Meson auto-detects sccache for the - # default compiler (macOS/Windows), but uses an explicit CC/CXX verbatim, - # so the launcher must be prepended here to route Ubuntu compiles through it. - if: ${{ startsWith(matrix.runs-on, 'ubuntu') }} - run: | - echo "CC=sccache ${{ matrix.CC }}" >> $GITHUB_ENV - echo "CXX=sccache ${{ matrix.CXX }}" >> $GITHUB_ENV - - name: Set up sccache - uses: ./.github/actions/setup-sccache - with: - key-prefix: sccache-meson-${{ matrix.runs-on }} - - name: Build Iceberg - run: | - meson setup builddir ${{ matrix.meson-setup-args || '' }} - meson compile -C builddir - - name: Save sccache - if: always() - uses: ./.github/actions/save-sccache - with: - key-prefix: sccache-meson-${{ matrix.runs-on }} - job-status: ${{ job.status }} - - name: Test Iceberg - run: | - meson test -C builddir --timeout-multiplier 0 --print-errorlogs diff --git a/.gitignore b/.gitignore index 458f876f7..ed660677a 100644 --- a/.gitignore +++ b/.gitignore @@ -36,12 +36,6 @@ cmake-build-release/ .devcontainer/* !.devcontainer/*.template -# meson subprojects - wrap files need to be kept to let meson download -# dependencies as needed, but dependencies themselves should not be versioned -/subprojects/* -!/subprojects/packagefiles -!/subprojects/*.wrap - # AI AGENTS.md CLAUDE.md diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index cd468a464..27ff321da 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -43,15 +43,3 @@ repos: rev: v0.6.10 hooks: - id: cmake-format - - - repo: https://github.com/trim21/pre-commit-mirror-meson - rev: v1.9.0 - hooks: - - id: meson-fmt - alias: cpp - args: ['--inplace'] - files: >- - ( - ?.*meson\.build$| - ?.*meson\.options$| - ) diff --git a/README.md b/README.md index 7206c4597..920b01a59 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ C++ implementation of [Apache Iceberg™](https://iceberg.apache.org/). **Required:** - C++23 compliant compiler (GCC 14+, Clang 18+, MSVC 2022+) -- CMake 3.25+ or Meson 1.5+ +- CMake 3.25+ - [Ninja](https://ninja-build.org/) (recommended build backend) **Optional:** @@ -105,29 +105,6 @@ cmake --install build | `ICEBERG_ENABLE_ASAN` | `OFF` | Enable Address Sanitizer | | `ICEBERG_ENABLE_UBSAN` | `OFF` | Enable Undefined Behavior Sanitizer | -## Build with Meson - -```bash -meson setup builddir -meson compile -C builddir -meson test -C builddir --timeout-multiplier 0 -``` - -Meson provides built-in equivalents for several CMake options: - -- `--default-library=` instead of `ICEBERG_BUILD_STATIC` / `ICEBERG_BUILD_SHARED` -- `-Db_sanitize=address,undefined` instead of `ICEBERG_ENABLE_ASAN` / `ICEBERG_ENABLE_UBSAN` -- `--libdir`, `--bindir`, `--includedir` for install directories - -Meson-specific options (configured via `-D