Skip to content

Commit 525d60f

Browse files
authored
build: remove Meson build support (#935)
1 parent 6988eb0 commit 525d60f

43 files changed

Lines changed: 5 additions & 1734 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.devcontainer/Dockerfile.template‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ RUN apt update && \
3838
libssl-dev \
3939
libxml2-dev \
4040
lsb-release \
41-
meson \
4241
ninja-build \
4342
pkg-config \
4443
python3 \

‎.github/workflows/test.yml‎

Lines changed: 0 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -204,60 +204,3 @@ jobs:
204204
run: |
205205
$ErrorActionPreference = "Stop"
206206
bash -lc 'ci/scripts/build_example.sh $(pwd)/example'
207-
meson:
208-
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft == false }}
209-
name: Meson - ${{ matrix.title }}
210-
runs-on: ${{ matrix.runs-on }}
211-
timeout-minutes: 30
212-
strategy:
213-
max-parallel: 15
214-
fail-fast: false
215-
matrix:
216-
include:
217-
- title: AMD64 Ubuntu 26.04
218-
runs-on: ubuntu-26.04
219-
CC: gcc-14
220-
CXX: g++-14
221-
meson-setup-args: -Drest_integration_test=enabled
222-
- title: AMD64 Windows 2025
223-
runs-on: windows-2025
224-
meson-setup-args: --vsenv
225-
- title: AArch64 macOS 26
226-
runs-on: macos-26
227-
steps:
228-
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
229-
with:
230-
python-version: '3.x'
231-
- name: Checkout iceberg-cpp
232-
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
233-
with:
234-
persist-credentials: false
235-
- name: Install build dependencies
236-
run: |
237-
python3 -m pip install --upgrade pip
238-
python3 -m pip install -r requirements.txt
239-
- name: Set Ubuntu Compilers
240-
# Wrap the compiler with sccache: Meson auto-detects sccache for the
241-
# default compiler (macOS/Windows), but uses an explicit CC/CXX verbatim,
242-
# so the launcher must be prepended here to route Ubuntu compiles through it.
243-
if: ${{ startsWith(matrix.runs-on, 'ubuntu') }}
244-
run: |
245-
echo "CC=sccache ${{ matrix.CC }}" >> $GITHUB_ENV
246-
echo "CXX=sccache ${{ matrix.CXX }}" >> $GITHUB_ENV
247-
- name: Set up sccache
248-
uses: ./.github/actions/setup-sccache
249-
with:
250-
key-prefix: sccache-meson-${{ matrix.runs-on }}
251-
- name: Build Iceberg
252-
run: |
253-
meson setup builddir ${{ matrix.meson-setup-args || '' }}
254-
meson compile -C builddir
255-
- name: Save sccache
256-
if: always()
257-
uses: ./.github/actions/save-sccache
258-
with:
259-
key-prefix: sccache-meson-${{ matrix.runs-on }}
260-
job-status: ${{ job.status }}
261-
- name: Test Iceberg
262-
run: |
263-
meson test -C builddir --timeout-multiplier 0 --print-errorlogs

‎.gitignore‎

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,6 @@ cmake-build-release/
3636
.devcontainer/*
3737
!.devcontainer/*.template
3838

39-
# meson subprojects - wrap files need to be kept to let meson download
40-
# dependencies as needed, but dependencies themselves should not be versioned
41-
/subprojects/*
42-
!/subprojects/packagefiles
43-
!/subprojects/*.wrap
44-
4539
# AI
4640
AGENTS.md
4741
CLAUDE.md

‎.pre-commit-config.yaml‎

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,3 @@ repos:
4343
rev: v0.6.10
4444
hooks:
4545
- id: cmake-format
46-
47-
- repo: https://github.com/trim21/pre-commit-mirror-meson
48-
rev: v1.9.0
49-
hooks:
50-
- id: meson-fmt
51-
alias: cpp
52-
args: ['--inplace']
53-
files: >-
54-
(
55-
?.*meson\.build$|
56-
?.*meson\.options$|
57-
)

‎README.md‎

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ C++ implementation of [Apache Iceberg™](https://iceberg.apache.org/).
3232
**Required:**
3333

3434
- C++23 compliant compiler (GCC 14+, Clang 18+, MSVC 2022+)
35-
- CMake 3.25+ or Meson 1.5+
35+
- CMake 3.25+
3636
- [Ninja](https://ninja-build.org/) (recommended build backend)
3737

3838
**Optional:**
@@ -105,29 +105,6 @@ cmake --install build
105105
| `ICEBERG_ENABLE_ASAN` | `OFF` | Enable Address Sanitizer |
106106
| `ICEBERG_ENABLE_UBSAN` | `OFF` | Enable Undefined Behavior Sanitizer |
107107

108-
## Build with Meson
109-
110-
```bash
111-
meson setup builddir
112-
meson compile -C builddir
113-
meson test -C builddir --timeout-multiplier 0
114-
```
115-
116-
Meson provides built-in equivalents for several CMake options:
117-
118-
- `--default-library=<shared|static|both>` instead of `ICEBERG_BUILD_STATIC` / `ICEBERG_BUILD_SHARED`
119-
- `-Db_sanitize=address,undefined` instead of `ICEBERG_ENABLE_ASAN` / `ICEBERG_ENABLE_UBSAN`
120-
- `--libdir`, `--bindir`, `--includedir` for install directories
121-
122-
Meson-specific options (configured via `-D<option>=<value>`):
123-
124-
| Option | Default | Description |
125-
|--------|---------|-------------|
126-
| `rest` | `enabled` | Build REST catalog client |
127-
| `rest_integration_test` | `disabled` | Build integration test for REST catalog |
128-
| `spdlog` | `enabled` | Use spdlog as the default logging backend |
129-
| `tests` | `enabled` | Build tests |
130-
131108
### Build Examples
132109

133110
After installing the core libraries, you can build the examples:

‎cmake_modules/IcebergThirdpartyToolchain.cmake‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,8 @@ set(ICEBERG_UTF8PROC_BUILD_SHA256_CHECKSUM
128128
if(DEFINED ENV{ICEBERG_UTF8PROC_URL})
129129
set(UTF8PROC_SOURCE_URL "$ENV{ICEBERG_UTF8PROC_URL}")
130130
else()
131-
# Use the release asset (stable bytes, matching subprojects/utf8proc.wrap) rather
132-
# than the auto-generated tag archive, whose contents GitHub does not guarantee.
131+
# Use the release asset (stable bytes) rather than the auto-generated tag archive,
132+
# whose contents GitHub does not guarantee.
133133
set(UTF8PROC_SOURCE_URL
134134
"https://github.com/JuliaStrings/utf8proc/releases/download/v${ICEBERG_UTF8PROC_BUILD_VERSION}/utf8proc-${ICEBERG_UTF8PROC_BUILD_VERSION}.tar.gz"
135135
)

‎meson.build‎

Lines changed: 0 additions & 48 deletions
This file was deleted.

‎meson.options‎

Lines changed: 0 additions & 68 deletions
This file was deleted.

‎mkdocs/docs/getting-started.md‎

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
**Required:**
2525

2626
- C++23 compliant compiler (GCC 14+, Clang 18+, MSVC 2022+)
27-
- CMake 3.25+ or Meson 1.5+
27+
- CMake 3.25+
2828
- [Ninja](https://ninja-build.org/) (recommended build backend)
2929

3030
## Quick Start
@@ -82,26 +82,6 @@ cmake --install build
8282
| `ICEBERG_ENABLE_ASAN` | `OFF` | Enable Address Sanitizer |
8383
| `ICEBERG_ENABLE_UBSAN` | `OFF` | Enable Undefined Behavior Sanitizer |
8484

85-
## Build with Meson
86-
87-
```bash
88-
meson setup builddir
89-
meson compile -C builddir
90-
meson test -C builddir --timeout-multiplier 0
91-
```
92-
93-
Meson provides built-in equivalents for several CMake options:
94-
95-
- `--default-library=<shared|static|both>` instead of `ICEBERG_BUILD_STATIC` / `ICEBERG_BUILD_SHARED`
96-
- `-Db_sanitize=address,undefined` instead of `ICEBERG_ENABLE_ASAN` / `ICEBERG_ENABLE_UBSAN`
97-
- `--libdir`, `--bindir`, `--includedir` for install directories
98-
99-
| Option | Default | Description |
100-
|--------|---------|-------------|
101-
| `rest` | `enabled` | Build REST catalog client |
102-
| `rest_integration_test` | `disabled` | Build integration test for REST catalog |
103-
| `tests` | `enabled` | Build tests |
104-
10585
## Running Tests
10686

10787
Run all tests:

‎mkdocs/docs/library.md‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ are supplied by the `iceberg_bundle` library.
4141

4242
This library combines `iceberg_data` with the Arrow C++, Avro, Parquet, and
4343
Arrow filesystem integrations. It gives applications one link-time dependency.
44-
Please note that Meson build currently does not have this yet.
4544

4645
### `iceberg_rest`, `iceberg_hive`, `iceberg_sql_catalog`
4746

0 commit comments

Comments
 (0)