見切り発車

とりあえずかきとめたい

CMake でWindows SDK バージョンを指定する方法

解決したこと

CMake で生成したvcxproj のWindows SDK バージョンが10.0.18362.0 になっていたのを10.0.19041.0 になるようにしました。

環境

解決方法

CMAKE_SYSTEM_VERSION のページに説明がありますが、新規のビルドツリーを作成するときに指定することができます。 out-of-source ビルド の場合にはコマンドプロンプトから

> mkdir build
> cd build
> cmake .. -G"Visual Studio 16 2019" -DCMAKE_SYSTEM_VERSION="10.0.19041.0"

と実行することで生成されるvcxproj のWindows SDK バージョンが指定の値になります。

-G"Visual Studio 16 2019" は生成するプロジェクトファイルの対象を指定しています。複数のバージョンのVisual Studio がインストールされている場合に指定します。

CMAKE_SYSTEM_VERSION の指定はコマンドライン上で行う必要があります。CMakeLists.txt でset で指定しても反映されません。

すでにcmake を実行してビルドツリーが作成済みの場合、一度build ディレクトリ内をすべて削除してから実行しなおす必要があります。

その他

インストールされているWindows SDK の中にホスト環境と一致するものがない場合、インストールされている中で一番新しいバージョンが選択されるようです。

参考リンク