kou commented on code in PR #47282:
URL: https://github.com/apache/arrow/pull/47282#discussion_r2331750064


##########
.github/workflows/cpp_extra.yml:
##########
@@ -278,3 +279,70 @@ jobs:
           cmake --build cpp/examples/minimal_build.build
           cd cpp/examples/minimal_build
           ../minimal_build.build/arrow-example
+
+  meson-windows:
+    needs: check-labels
+    name: ${{ matrix.title }}
+    runs-on: ${{ matrix.runs-on }}
+    if: needs.check-labels.outputs.ci-extra == 'true'
+    timeout-minutes: 75
+    strategy:
+      fail-fast: false
+      matrix:
+        include:
+            - runs-on: windows-2022
+              title: AMD64 Windows Meson
+    steps:
+      - name: Checkout Arrow
+        uses: actions/checkout@v4
+        with:
+          fetch-depth: 0
+          submodules: recursive
+      - name: Download Timezone Database
+        shell: bash
+        run: ci/scripts/download_tz_database.sh
+      - name: Install ccache
+        shell: bash
+        run: |
+          ci/scripts/install_ccache.sh 4.6.3 /usr
+      - name: Setup ccache
+        shell: bash
+        run: |
+          ci/scripts/ccache_setup.sh
+      - name: ccache info
+        id: ccache-info
+        shell: bash
+        run: |
+          echo "cache-dir=$(ccache --get-config cache_dir)" >> $GITHUB_OUTPUT
+      - name: Cache ccache
+        uses: actions/cache@v4

Review Comment:
   ```suggestion
           uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
   ```



##########
.github/workflows/cpp_extra.yml:
##########
@@ -278,3 +279,70 @@ jobs:
           cmake --build cpp/examples/minimal_build.build
           cd cpp/examples/minimal_build
           ../minimal_build.build/arrow-example
+
+  meson-windows:
+    needs: check-labels
+    name: ${{ matrix.title }}
+    runs-on: ${{ matrix.runs-on }}
+    if: needs.check-labels.outputs.ci-extra == 'true'
+    timeout-minutes: 75
+    strategy:
+      fail-fast: false
+      matrix:
+        include:
+            - runs-on: windows-2022
+              title: AMD64 Windows Meson
+    steps:
+      - name: Checkout Arrow
+        uses: actions/checkout@v4
+        with:
+          fetch-depth: 0
+          submodules: recursive
+      - name: Download Timezone Database
+        shell: bash
+        run: ci/scripts/download_tz_database.sh
+      - name: Install ccache
+        shell: bash
+        run: |
+          ci/scripts/install_ccache.sh 4.6.3 /usr
+      - name: Setup ccache
+        shell: bash
+        run: |
+          ci/scripts/ccache_setup.sh
+      - name: ccache info
+        id: ccache-info
+        shell: bash
+        run: |
+          echo "cache-dir=$(ccache --get-config cache_dir)" >> $GITHUB_OUTPUT
+      - name: Cache ccache
+        uses: actions/cache@v4
+        with:
+          path: ${{ steps.ccache-info.outputs.cache-dir }}
+          key: cpp-ccache-windows-meson-${{ env.CACHE_VERSION }}-${{ 
hashFiles('cpp/**') }}
+          restore-keys: cpp-ccache-windows-meson-${{ env.CACHE_VERSION }}-
+        env:
+          # We can invalidate the current cache by updating this.
+          CACHE_VERSION: "2025-08-21"
+      - name: Setup Python
+        uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # 
v5.6.0

Review Comment:
   ```suggestion
           uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c 
# v6.0.0
   ```



##########
cpp/src/arrow/flight/meson.build:
##########
@@ -44,7 +44,20 @@ install_headers(
     subdir: 'arrow/flight',
 )
 
-grpc_dep = dependency('grpc++')
+grpc_opts = []
+if cpp_compiler.get_id() == 'msvc'
+    grpc_opts += [
+        'openssl:asm=disabled',  # asm cannot compile on Windows
+        're2:default_library=static',  # re2 does not export symbols
+    ]
+endif
+
+grpc_cpp_dep = dependency(
+    'gRPC++',

Review Comment:
   pkg-config uses `grpc++.pc`.
   
   ```suggestion
       'grpc++',
       'gRPC++',
   ```



##########
.github/workflows/cpp_extra.yml:
##########
@@ -278,3 +279,70 @@ jobs:
           cmake --build cpp/examples/minimal_build.build
           cd cpp/examples/minimal_build
           ../minimal_build.build/arrow-example
+
+  meson-windows:
+    needs: check-labels
+    name: ${{ matrix.title }}
+    runs-on: ${{ matrix.runs-on }}
+    if: needs.check-labels.outputs.ci-extra == 'true'
+    timeout-minutes: 75
+    strategy:
+      fail-fast: false
+      matrix:
+        include:
+            - runs-on: windows-2022
+              title: AMD64 Windows Meson

Review Comment:
   There is only one pattern. Can we simplify this? (Can we remove `strategy`?)



##########
cpp/src/arrow/meson.build:
##########
@@ -420,19 +481,38 @@ foreach key, val : arrow_components
     arrow_deps += val.get('dependencies', [])
 endforeach
 
+arrow_lib_cpp_shared_args = ['-DARROW_EXPORTING', '-DURI_LIBRARY_BUILD']
+if needs_compute
+    arrow_lib_cpp_shared_args += ['-DARROW_COMPUTE_EXPORTING']
+endif
+
 arrow_lib = library(
     'arrow',
     sources: arrow_srcs,
     include_directories: arrow_includes,
     dependencies: arrow_deps,
     install: true,
     gnu_symbol_visibility: 'inlineshidden',
-    cpp_shared_args: ['-DARROW_EXPORTING'],
+    gnu_symbol_visibility: 'hidden',

Review Comment:
   Is this intentional change?



##########
ci/scripts/cpp_test.sh:
##########
@@ -95,6 +95,8 @@ if [ "${ARROW_USE_MESON:-OFF}" = "ON" ]; then
     --no-rebuild \
     --print-errorlogs \
     --suite arrow \
+    --max-lines=0 \
+    --timeout-multiplier=10 \

Review Comment:
   Could you sort them?



##########
cpp/src/arrow/meson.build:
##########
@@ -233,7 +287,14 @@ endif
 
 if needs_snappy
     arrow_util_srcs += ['util/compression_snappy.cc']
-    arrow_util_deps += dependency('snappy')
+

Review Comment:
   ```suggestion
   ```



##########
.github/workflows/cpp_extra.yml:
##########
@@ -278,3 +279,70 @@ jobs:
           cmake --build cpp/examples/minimal_build.build
           cd cpp/examples/minimal_build
           ../minimal_build.build/arrow-example
+
+  meson-windows:
+    needs: check-labels
+    name: ${{ matrix.title }}
+    runs-on: ${{ matrix.runs-on }}
+    if: needs.check-labels.outputs.ci-extra == 'true'
+    timeout-minutes: 75

Review Comment:
   It seems that `60` is enough because 
https://github.com/apache/arrow/actions/runs/17567392124/job/49896883950?pr=47282
 completed in 43m 44s.



##########
.github/workflows/cpp_extra.yml:
##########
@@ -278,3 +279,70 @@ jobs:
           cmake --build cpp/examples/minimal_build.build
           cd cpp/examples/minimal_build
           ../minimal_build.build/arrow-example
+
+  meson-windows:
+    needs: check-labels
+    name: ${{ matrix.title }}
+    runs-on: ${{ matrix.runs-on }}
+    if: needs.check-labels.outputs.ci-extra == 'true'
+    timeout-minutes: 75
+    strategy:
+      fail-fast: false
+      matrix:
+        include:
+            - runs-on: windows-2022
+              title: AMD64 Windows Meson
+    steps:
+      - name: Checkout Arrow
+        uses: actions/checkout@v4

Review Comment:
   ```suggestion
           uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
   ```



##########
cpp/src/arrow/testing/process.h:
##########
@@ -39,6 +39,14 @@ class ARROW_TESTING_EXPORT Process {
   bool IsRunning();
   uint64_t pid();
 
+  static constexpr bool IsAvailable() {
+#ifdef BOOST_PROCESS_AVAILABLE
+    return true;
+#else
+    return false;
+#endif

Review Comment:
   Could you define this in `process.cc` because `BOOST_PROCESS_AVAILABLE` is 
defined in `process.cc`?



##########
cpp/src/arrow/meson.build:
##########
@@ -420,19 +481,38 @@ foreach key, val : arrow_components
     arrow_deps += val.get('dependencies', [])
 endforeach
 
+arrow_lib_cpp_shared_args = ['-DARROW_EXPORTING', '-DURI_LIBRARY_BUILD']
+if needs_compute
+    arrow_lib_cpp_shared_args += ['-DARROW_COMPUTE_EXPORTING']
+endif
+
 arrow_lib = library(
     'arrow',
     sources: arrow_srcs,
     include_directories: arrow_includes,
     dependencies: arrow_deps,
     install: true,
     gnu_symbol_visibility: 'inlineshidden',
-    cpp_shared_args: ['-DARROW_EXPORTING'],
+    gnu_symbol_visibility: 'hidden',
+    c_shared_args: [
+        '-DARROW_EXPORTING',
+        '-DURI_LIBRARY_BUILD',
+        '-DURI_VISIBILITY',

Review Comment:
   Do we need this for C++ too?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to