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 = []
 

Reply via email to