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


##########
.github/workflows/cpp_extra.yml:
##########
@@ -166,3 +166,73 @@ jobs:
           ARCHERY_DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
         continue-on-error: true
         run: archery docker push ${{ matrix.image }}
+
+  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: "2022-09-13"
+      - name: Setup Python
+        uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # 
v5.6.0
+        with:
+          python-version: 3
+      - name: Install Meson
+        run: |
+          python3 -m pip install meson
+      - name: Build
+        shell: cmd
+        env:
+          ARROW_USE_MESON: ON
+          ARROW_HOME: C:\arrow-dist
+        run: |
+          echo %PATH%
+          call "C:\Program Files\Microsoft Visual 
Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
+          echo %PATH%
+          dir "C:\Program Files\Microsoft Visual 
Studio\2022\Enterprise\VC\Tools\MSVC\14.44.35207\bin\HostX64\x64"
+          bash -c "ci/scripts/cpp_build.sh $(pwd) $(pwd)/build ${{ 
matrix.run-options || '' }}"

Review Comment:
   I believe the current error has to do with the fact that calling `bash -c 
link ..." invokes the linker that comes bundled with bash, and not the linker 
that the vcvarsall.bat script is supposed to activate. You can reproduce this 
locally:
   
   ```cmd
   > link /help
   Microsoft (R) Incremental Linker Version 14.44.35214.0
   Copyright (C) Microsoft Corporation.  All rights reserved.
   
      For help on Linker, type `link /link' or `link'
      For help on Library Manager, type `link /lib' or `lib'
      For help on Dumper, type `link /dump' or `dumpbin'
      For help on Editor, type `link /edit' or `editbin'
      For help on CvtCIL, type `link /cvtcil'
      For help on PushThunkObj Generator, type `link /pushthunkobj'
   > bash -c "link /help"
   link: missing operand after ‘/help’
   Try 'link --help' for more information.
   > bash -c "link --help"
   Usage: link FILE1 FILE2
     or:  link OPTION
   Call the link function to create a link named FILE2 to an existing FILE1.
   
         --help        display this help and exit
         --version     output version information and exit
   
   GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
   Report any translation bugs to <https://translationproject.org/team/>
   Full documentation <https://www.gnu.org/software/coreutils/link>
   or available locally via: info '(coreutils) link invocation'
   ```
   
   I guess the current CMake configuration doesn't care about this, although it 
makes sense for Meson to be suspect of this environment.
   
   Maybe its worth creating a separate `cpp_build.bat` script for Windows 
platforms to use? What do you think @kou ?



-- 
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: github-unsubscr...@arrow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to