外部ツールの実行ファイルの位置を探し、見つかれば環境変数にセットします。現在パスが通っている場所と、インストーラがデフォルトでインストールする場所が検索されます。詳細はMSBuild以外の探索手順の項目を参照してください。
外部ツールのインストール時にデフォルトパスにインストールしていない場合や別の実行ファイルを使いたい場合、実行前にパスを通しておくかCMD_7Zなどの対応する環境変数に絶対パスをセットしておいてください。
ツール名 | 環境変数 | デフォルトパス | ファイル名 |
---|---|---|---|
Git for Windows | CMD_GIT | Git\Cmd | git.exe |
7-Zip | CMD_7Z | 7-Zip | 7z |
HTML Help Workshop | CMD_HHC | HTML Help Workshop | hhc.exe |
Inno Setup 5 | CMD_ISCC | Inno Setup 5 | ISCC.exe |
Cppcheck | CMD_CPPCHECK | cppcheck | cppcheck.exe |
Doxygen | CMD_DOXYGEN | doxygen\bin | doxygen.exe |
Visual Studio Locator | CMD_VSWHERE | Microsoft Visual Studio\Installer | vswhere.exe |
MSBuild | CMD_MSBUILD | 特殊 | MSBuild.exe |
Locale Emulator | CMD_LEPROC | なし | LEProc.exe |
Python | CMD_PYTHON | なし | py.exe (python.exe) |
CMake | CMD_CMAKE | CMake\bin | cmake |
Ninja | CMD_NINJA | なし | ninja |
MSBuild以外の探索手順は同一であり、7-Zipを例に説明する。
- CMD_7Zがセットされていればそれを使う
- パスが通っていればそれを使う
- 以下のディレクトリ内の「デフォルトパス」を順に探索し、実行ファイルが見つかればそれを使う
- %ProgramFiles%
- %ProgramFiles(x86)%
- %ProgramW6432%
- 1~3で見つからなければCMD_7Zには何もセットしない
環境変数 NUM_VSVERSION
の値でビルドに使用するバージョンを切り替えられる。
NUM_VSVERSION | 使用される Visual Studio のバージョン |
---|---|
(未定義) | インストールされている最新のバージョン |
15 | Visual Studio 2017 |
16 | Visual Studio 2019 |
17 | Visual Studio 2022 |
- バッチファイルの引数をチェックする。
- 引数が指定されていない場合、
NUM_VSVERSION
が定義されていればその値を、そうでなければlatest
を指定したものとみなす。 - 引数にプロダクトバージョン(例:
2019
)が指定されている場合は値をメジャーバージョンに変換する。latest
を指定した場合は、実行環境にインストールされている最新のメジャーバージョンを取得する。 - 指定したバージョンがインストールされているか確認し、見つからなければ引数の指定はなかったものとみなしてチェックをやり直す。
NUM_VSVERSION
が指定されている場合に限り、設定されている値とここまでのチェックで見つかったバージョンが同じであるか確認する。 もし異なっている場合は環境変数を初期化した上で引数チェックをやり直す。
- 引数が指定されていない場合、
- 引数チェックで決定したバージョンの MSBuild を探す。
- Visual Studio 2017 が選択された場合
- VS2017 のインストールパスを取得し、配下の所定位置に
MSBuild.exe
が存在する場合、そのパスをMSBuild
のパスとして利用する。 - CMakeのジェネレータ名を示す
CMAKE_G_PARAM
にVisual Studio 15 2017
を設定する。
- VS2017 のインストールパスを取得し、配下の所定位置に
- Visual Studio 2019 以降が選択された場合
- Visual Studio Locator の
-find
オプションを利用してMSBuild.exe
を検索し、見つかったパスをMSBuild
のパスとして利用する。 NUM_VSVERSION
と別途取得したプロダクトバージョンからCMakeのジェネレータ名を生成し、CMAKE_G_PARAM
に設定する。
- Visual Studio Locator の
- Visual Studio 2017 が選択された場合
ビルドバッチで利用する Python インタープリタの存在確認をします。
適切な Python インタープリタが見つかると、環境変数 CMD_PYTHON
が定義されます。
適切な Python インタープリタが見つからない場合、 CMD_PYTHON
は定義されません。
Python インタープリタはビルド要件ではないので、 Python を利用するバッチには CMD_PYTHON
チェックを挟む必要があります。
- Python Launcher (py.exe) が存在し、
py.exe --version
でバージョンが取れたら、それを使う。 - パスが通っているpython.exeで
python.exe --version
してバージョンが取れたら、それを使う。
事前に環境変数のFORCE_POWERSHELL_ZIP
を1にセットすることで、7zの検索をスキップできます。
PowerShellによるzipの処理が正しく行われるかを7zがインストール済みの環境で検証する際に活用できます。build.mdも参照してください。