トップ «前の日記(2024/01/25 (木) ) 最新 次の日記(2024/01/27 (土) )» 編集 RSS feed

HsbtDiary


2024/01/26 (金) [長年日記]

vcpkg.json という Windows 向けパッケージマネージャを導入した

パッケージマネージャというか、開発環境構築ツールというか悩ましいのだが、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 というディレクトリの下に一連のファイルがインストールされる。最高に便利。

Windows で Ruby をビルドする 2024 年バージョン

2020年バージョンから4年経ちそうなので更新しておきます。

用意するもの

  • Visual Studio 2022/2019/2017
    • C++開発ツール、英語リソース、vcpkg をオプションで選択
  • scoop

scoop を使って以下のツールをインストールする

scoop install git ruby sed patch

作業ディレクトリ配下の repos/ruby/rubyhttps://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 ディレクトリに移動して、以下のコマンドを実行

..\..\repos\ruby\ruby\win32\configure.bat --without-ext=+,syslog --with-opt-dir=C:/users/hsbt/source/repos/ruby/ruby/vcpkg_installed/x64-windows

nmake を実行せよ、というメッセージがでるので、そのまま nmake を実行ですべてビルドが実行される。ビルド完了後に

nmake test test-all test-spec TESTS="-j4" MSPECOPT="-j"

などでテストを実行できる。-j に渡す数字は CPU のコア数などに応じて調整してください。

nobu と、この辺の手順はすべて configure.bat でやってしまうようにすればよくね?とか話しているのでもう少し楽になるかも。楽になったら更新します。