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]