ビルド用のWindows Server箱準備

まぁDockerを真面目にやるより普通にVMでなんとかする方が簡単だなとなってきたので。。

Windows Server 2022 のセットアップ
... 特記事項なし。細かい設定はWindows Admin Center https://www.microsoft.com/ja-jp/windows-server/windows-admin-center を入れればWebブラウザ上からできる。
Cygwinのセットアップ
標準のPowerShellがHTTPリクエストを wget
なり curl
なりのエイリアスで提供しているので、それを使ってCygwinのsetupをダウンロードする。
wget -UseBasicParsing -OutFile setup-x86_64.exe https://cygwin.com/setup-x86_64.exe
セットアップ後は c:\cygwin64\cygwin.bat
なり何なりでCygwinのコマンドプロンプトに入れる。 openssh
パッケージでsshdを上げるのが良いかな。。
いわゆるIEコンポーネントが無い環境になるので -UseBasicParsing
が必要。
Cygwin sshdのセットアップ
ssh-host-config
でホスト鍵などを生成できる。標準ではWindows firewallに阻まれるのに注意。Windows Admin Centerでルールを作って有効にする。

Visual Studio Build Toolsのセットアップ
https://learn.microsoft.com/ja-jp/visualstudio/releases/2022/release-history#release-dates-and-build-numbers にインストーラーへのリンクがある。今は https://aka.ms/vs/17/release/vs_buildtools.exe のようだ。Cygwinから、
$ wget https://aka.ms/vs/17/release/vs_buildtools.exe
$ chmod +x vs_buildtools.exe
(今回使っているのは本物の wget
。)
インストールのコマンドラインは https://learn.microsoft.com/en-us/visualstudio/install/build-tools-container?view=vs-2022 にある。とりあえず
https://learn.microsoft.com/en-us/visualstudio/install/workload-component-id-vs-build-tools?view=vs-2022 を眺めて、
$ ./vs_buildtools --quiet --wait --norestart --nocache --installPath c:\\BuildTools.17 \
--add Microsoft.VisualStudio.Workload.UniversalBuildTools \
--add Microsoft.VisualStudio.Component.Windows11SDK.22621 \
--add Microsoft.VisualStudio.Workload.VCTools \
--add Microsoft.Component.VC.Runtime.UCRTSDK \
--add Microsoft.VisualStudio.Component.VC.ASAN \
--add Microsoft.VisualStudio.Component.VC.CMake.Project
という感じにした。
環境変数の収集
Cygwin側の環境にいわゆる "Visual Studio コマンドプロンプト" のセットアップを実現するのはあまり簡単ではないので、必要な環境変数を収集して自前でsetしていくことにした。環境変数の収集は、
@set
@echo.
@echo ===CUT_HERE===
@echo.
@call c:\BuildTools.17\VC\Auxiliary\Build\vcvars64.bat
@set
のようなバッチファイルを用意して、これの出力をテキストファイルに落してパースする感じで。。