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