😊

ビルドに必要なツールをコマンドラインからインストールする

2022/05/01に公開

あるプロジェクトのビルドを試すのに事前にインストールしたり、バージョンを合わせたりするのって面倒ですよね。(私だけでしょうか?)
CIなどで利用することも考えると、ビルドしたりテストするために打ち込むコマンドは最小限にしておきたいです。

そこで、Webページ上で公開されている実行ファイルなどをなるべく標準コマンドで実行できるようにしておくと、環境が変わってもセットアップがすんなりできそうです。
幸いCMakeやNinja, vswhereなど、ビルド時に使用したいツールはGitHubや公式サイトなどで実行ファイルが公開されている事が多いので、試してみたいと思います。

CMakeを例に試してみます。
CMakeはGitHubに必要なファイルがzipファイルにまとめてバージョンごとに公開されているので、そちらを利用します。

Windows編

まずはダウンロードするバージョンと対象プラットフォームを選びます。
バージョンは執筆時点で最新の3.23.1を、プラットフォームはWindowsで試したいのでWindows64bit版を選択しました。
配置場所はbatファイルのあるフォルダにしたいと思います。

@echo off
set CURRENT_DIR=%~dp0

set TARGET_DIR=%CURRENT_DIR%
set CMAKE_VERSION=3.23.1
set CMAKE_ARCHIVE_NAME=cmake-%CMAKE_VERSION%-windows-x86_64

ダウンロード

さてダウンロードですが、Windows標準のbitsadminコマンドを使用します。
bitsadmin /RawReturn /TRANSFER getfileの後にURLを、さらにその後に保存先を指定します。
(結構時間がかかりますが、一度ダウンロードしたら再度ダウンロードすることは滅多にないので良いでしょう...。)

bitsadmin /RawReturn /TRANSFER getfile ^
https://github.com/Kitware/CMake/releases/download/v%CMAKE_VERSION%/%CMAKE_ARCHIVE_NAME%.zip ^
%TARGET_DIR%\%CMAKE_ARCHIVE_NAME%.zip

zipファイルを展開

zipファイルを展開します。
powershell Expand-Archiveコマンドの-Pathオプションに対象のzipファイルを、-DestinationPathオプションに展開先のパスを指定します。

展開後、zipファイルは不要になるので削除しておきます。

powershell Expand-Archive -Path %CMAKE_ARCHIVE_NAME%.zip -DestinationPath %TARGET_DIR%
del %CMAKE_ARCHIVE_NAME%.zip

動作確認

展開まで終えたら動作確認です。
無事にバージョンが表示されていればOKです。

%CMAKE_PATH%\cmake.exe --version

サンプル

作成したbatファイルの全体コードをGitHub Gistで公開しました。
インストール済みかどうかのチェックなど一部追加をしています。

Discussion