諸事情によりオレオレビルドをしたくなった。ちょろっと修正したバイナリが欲しかったのだ。
今回はWindowsで使う必要があったのだが、我が家で一番パワーのあるCPUであるRyzen 3700XなマシンにはArch Linuxが載っているので、ここでソース修正を試行錯誤した後、Windowsで同様のソース修正をしてバイナリを生成するって感じのことをしようと思う。
Arch LinuxでのビルドはPKGBUILD使えばなんにも難しくないので割愛。ここではWindowsでビルドするぞ。つっても基本的にはChecking out and Building Chromium for Windowsに従うだけ。
必要なものは以下。カッコ書きは今回の環境。
・64bitなIntel CPU(Core i7 6700K)
・RAMは16GB以上推奨(48GB)
・NTFSでフォーマットされた100GB以上のストレージ(Samsung 860 QVO 1TB)
・Visual Studio 2019
・Windows7以降(Windows 10 Pro 1909)
まずはVS2019のインストール。Communityで良いのでてきとうに。インストールするコンポーネントは、C++によるデスクトップ開発
と、個別で最新の v142 ビルド ツールの C++ MFC (x86 および x64)
と最新の v142 ビルド ツールの C++ ATL (x86 および x64)
を入れた。(ほんとにこれが必要なのかはちょっとわからん)
最後に、Windows 10 SDK (10.0.18362.0)
が入っていることを確認して、インストール。
それから、以下の手順でデバッギングのためのツールをインストールしておく。
コントロールパネル→プログラム→プログラムと機能→Windows Software Development Kit - Windows 10.0.18362.1
を右クリック→変更→Changeにチェックを入れてNext→Debugging Tools For Windows
にチェックを入れてChangeボタンでインストール。
depot_tools
のインストール次、depot_tools
のインストール。手順サイトからスッとダウンロードできる。パスにスペースを含まないてきとうなところに展開して、PATHを通す。(中に色々ツールが入ってるので、これが優先されるように)
システム環境変数にDEPOT_TOOLS_WIN_TOOLCHAIN
(値は0)を追加する。
この状態で、cmd.exeを開いて、gclient
を実行すると、諸々の必要なツール郡がインストールされるので、これを待つ。
インストールが完了した状態で、where python
を実行して、depot_tools内のpython.bat
が呼ばれていることを確認する。(インストール完了確認)
つぎ。
まずはgitの初期設定から。
$ git config --global user.name "hoge"
$ git config --global user.email "hoge@fuga.com"
$ git config --global core.autocrlf false
$ git config --global core.filemode false
$ git config --global branch.autosetuprebase always
パスにスペースを含まない場所を選んで、てきとうにフォルダを作る。そこの中で、fetch chromium
でリポジトリをcloneする。フルで要らない場合は--no-history
とかしろって書いてあるけど気にしない。20GB超ダウンロードしたし、最終的には1時間半くらいかかったかな。
$ mkdir chromium
$ cd chromium
$ fetch chromium
ChromiumではビルドツールとしてNinjaというものを使んだけど、そのための.ninjaファイルを生成するのがGNというツール。こいつを使ってコンフィグ(ビルドディレクトリ)を作成して、autoninja
コマンドでビルドする。
Visual StudioをIDEとして使う場合には--ide
オプションをつけろとかあるけど、今回は修正内容がはっきりしているので、気にしない。
$ cd src
$ gn gen out/Default
$ autoninja -C out/Default chrome
0:50頃スタートして、バイナリのタイムスタンプが5:20だったので、4時間半かかった。他にも色々やってたしこんなもんか?
手順通りに進めるだけでうまくいくっていいよね(?)