This is an automated email from the ASF dual-hosted git repository.
willayd pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-nanoarrow.git
The following commit(s) were added to refs/heads/main by this push:
new 5a23c763 ci: Clean up existing Meson CI job and add Windows coverage
(#774)
5a23c763 is described below
commit 5a23c763e4e611e639f4bd3494791b5a42bfc12e
Author: William Ayd <[email protected]>
AuthorDate: Tue Jun 10 12:34:58 2025 -0400
ci: Clean up existing Meson CI job and add Windows coverage (#774)
---
.github/workflows/build-and-test.yaml | 47 +++++++++++++++++++++++------------
meson.build | 11 +++++++-
2 files changed, 41 insertions(+), 17 deletions(-)
diff --git a/.github/workflows/build-and-test.yaml
b/.github/workflows/build-and-test.yaml
index fed398c5..eda6a51c 100644
--- a/.github/workflows/build-and-test.yaml
+++ b/.github/workflows/build-and-test.yaml
@@ -127,8 +127,6 @@ jobs:
path: build/Testing/Temporary/MemoryChecker.*.log
meson-build:
- # Can't quite be ubuntu-latest yet
- # https://github.com/apache/arrow-nanoarrow/issues/753
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
@@ -136,26 +134,19 @@ jobs:
with:
python-version: '3.x'
- - name: Install system dependencies
+ - name: Install valgrind
run: |
- sudo apt-get update && sudo apt-get install -y ninja-build valgrind
+ sudo apt-get update && sudo apt-get install -y valgrind
# the gcovr shipped with 24.04 does not work with source files over 10k
lines
# so we use Python to install a newer version. See also
# https://github.com/gcovr/gcovr/issues/1103
- - uses: actions/setup-python@v5
- with:
- python-version: '3.x'
- - name: Install gcovr
+ # Meson 1.8.0 breaks build
+ # https://github.com/apache/arrow-nanoarrow/issues/753
+ - name: Install build dependencies
run: |
- pip install --upgrade pip
- pip install gcovr
-
- - name: Install meson
- # Meson 1.8.0 breaks build
- # https://github.com/apache/arrow-nanoarrow/issues/753
- run: |
- python3 -m pip install "meson<1.8.0"
+ python3 -m pip install --upgrade pip
+ python3 -m pip install gcovr "meson<1.8.0" ninja
- name: Cache Arrow C++ Build
id: cache-arrow-build
@@ -175,6 +166,30 @@ jobs:
run: |
PKG_CONFIG_PATH="$(pwd)/arrow/lib/pkgconfig"
ci/scripts/build-with-meson.sh
+ meson-build-windows:
+ runs-on: windows-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions/setup-python@v5
+ with:
+ python-version: '3.x'
+
+ # Meson 1.8.0 breaks build
+ # https://github.com/apache/arrow-nanoarrow/issues/753
+ - name: Install dependencies
+ run: |
+ python3 -m pip install --upgrade pip
+ python3 -m pip install "meson<1.8.0"
+
+ - name: Run meson
+ run: |
+ meson setup builddir `
+ --vsenv `
+ -Dipc=enabled `
+ -Dtests=enabled
+ meson compile -C builddir
+ meson test -C builddir --print-errorlogs
+
test-no-arrow:
name: test-no-arrow
runs-on: ubuntu-latest
diff --git a/meson.build b/meson.build
index 15d4178e..c202831c 100644
--- a/meson.build
+++ b/meson.build
@@ -103,7 +103,16 @@ nanoarrow_dep = declare_dependency(
)
if get_option('ipc').enabled()
- flatcc_dep = dependency('flatcc')
+ # flatcc does not export symbols in a way that works with
+ # MSVC compilers, so we force static linkage
+ if host_machine.system() == 'windows'
+ flatcc_dep = dependency(
+ 'flatcc',
+ default_options: ['default_library=static'],
+ )
+ else
+ flatcc_dep = dependency('flatcc')
+ endif
ipc_lib_deps = [nanoarrow_dep, flatcc_dep]
ipc_lib_c_args = []