🔨

GitHub Actions で VS2019 の C++ ビルドをする

2021/04/27に公開

はじめに

GitHub Actions で Visual Studio 2019 を使って C++ プロジェクトのビルドをする場合、 microsoft/setup-msbuild を使うのが定石のようなのですが、 cmake とかと組み合わせてビルドする場合にうまくいかない場合がありました (おそらく "Developer Command Prompt (VsDevCmd.bat) 相当) 。

VS2019 は様々なパターンの環境設定定義をするバッチファイルが用意されていますが、これらを使って GitHub Actions の workflow 設定をしたい場合のやり方です。

設定

上記記事を参考にしました。

下記を workflow の最初の方法に設定します。 vcvars64.bat は "x64 Native Tools Command Prompt for VS 2019" に相当します。

    - name: Setup Visual Studio 2019
      run: |
        cmd.exe /c "call `"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat`" && set > %temp%\vcvars.txt"
        Get-Content "$env:temp\vcvars.txt" | Foreach-Object {
          if ($_ -match "^(.*?)=(.*)$") {
            $key=$matches[1].ToString()
            $value=$matches[2].ToString()
            echo "$key=$value" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf-8 -Append
          }
        }

別解

作業している時には気づいていなかったのですが、そのものずばりの Action がありました。

    - uses: ilammy/msvc-dev-cmd@v1

おわりに

PowerShell なにもわからない・・・

Discussion