Open3

ビルド用のWindows Server箱準備

okuokuokuoku

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

okuokuokuoku

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でルールを作って有効にする。

okuokuokuoku

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

のようなバッチファイルを用意して、これの出力をテキストファイルに落してパースする感じで。。