パッケージマネージャというか、開発環境構築ツールというか悩ましいのだが、vcpkg という Windows 向けのランタイム管理ツールに、vcpkg.json
というマニフェストファイルをサポートする仕組みが追加されていたので ruby/ruby
にもおいてみた。
https://github.com/ruby/ruby/commit/f9bf7d531bcea3fde3bb055d5d517f93945515dd
具体的な内容は以下のようなファイルになる。
{
"$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json",
"dependencies": [
"gmp",
"libffi",
"libyaml",
"openssl",
"zlib"
],
"builtin-baseline": "53bef8994c541b6561884a8395ea35715ece75db"
}
ぱっと見で分かる通りの素朴な json ファイルで、dependencies にインストールするライブラリ、builtin-baseline に GitHub の microsoft/vcpkg
リポジトリで使うべき commit を指定するという内容になっている。このファイルがあるディレクトリの上で
vcpkg install --triplet=x64-windows
を実行すると vcpkg_installed
というディレクトリの下に一連のファイルがインストールされる。最高に便利。
2020年バージョンから4年経ちそうなので更新しておきます。
用意するもの
scoop を使って以下のツールをインストールする
scoop install git ruby
作業ディレクトリ配下の repos/ruby/ruby
が https://github.com/ruby/ruby/ を git clone したディレクトリ、ruby.build/2022
などをビルドディレクトリとします。まずは git clone した ruby ディレクトリに移動して以下のコマンドを実行。
vcpkg install --triplet=x64-windows
dll が参照できないと、psych や openssl を使うような処理がエラーで落ちるので、以下のディレクトリを環境変数の PATH に設定する。
C:/users/hsbt/source/repos/ruby/ruby/vcpkg_installed/x64-windows/bin
続いて、ruby.build/2022
ディレクトリに移動して、以下のコマンドを実行
..\..\ruby\win32\configure.bat --without-ext=+,syslog --with-opt-dir=V:/github.com/ruby/ruby/vcpkg_installed/x64-windows
nmake を実行せよ、というメッセージがでるので、そのまま nmake
を実行ですべてビルドが実行される。ビルド完了後に
nmake test test-all test-spec TESTS="-j4" MSPECOPT="-j"
などでテストを実行できる。-j
に渡す数字は CPU のコア数などに応じて調整してください。
nobu と、この辺の手順はすべて configure.bat
でやってしまうようにすればよくね?とか話しているのでもう少し楽になるかも。楽になったら更新します。