cmake 使用 GitHub Actions MSYS2

cmake using GitHub Actions MSYS2

我正在尝试将 MSYS2 构建从 Azure 管道 CI(有效)转换为 github 操作。

我现在卡住了 cmake 没有被识别为命令。

我当前的(简化的)yaml 如下:

- uses: msys2/setup-msys2@v2
        with:
          msystem: MSYS
          install: >-
            git
            base-devel
            mingw-w64-${{ matrix.arch }}-gcc
            mingw-w64-${{ matrix.arch }}-cmake
          update: true

      - name: Move Checkout
        run: |
          Copy-Item -Path ".\temp" -Destination "C:\_" -Recurse
      - name: CI-Build
        shell: msys2 {0}
        run: |
          cd /C/_
          mkdir build
          cd build
          cmake -DCMAKE_FIND_LIBRARY_SUFFIXES='.a' -DCMAKE_TOOLCHAIN_FILE=cmake/Toolchains/mingw64-x86_64.cmake -DCMAKE_BUILD_TYPE=Release -G 'MSYS Makefiles' ..
          make VERBOSE=1 -j4

为什么 cmake 不是可识别的命令?!

CMake 包名错误。这是 MSYS repository 中名称中包含 cmake 的软件包列表:

cmake
icmake
mingw-w64-cmake
mingw-w64-cmake-doc-qt
mingw-w64-extra-cmake-modules
mingw-w64-python-sphinxcontrib-moderncmakedomain

我打赌你要么想要 mingw-w64-cmake,要么想要 cmakemingw-w64-${{ matrix.arch }}-cmakematrix.arch 的值不会扩展为上述名称之一。

答案是将 msystemMSYS 更改为 MINGW64 这是因为 MSYS 将以 cygwin 为目标(这需要 cmake 包作为由 Alex Reinking 指定)。

指定 MINGW64 将允许正确使用 mingw-w64-x86_64-cmake 包。