序文
この記事では、chromium ソース コードをダウンロードしてコンパイルする方法について説明します。関連する前提条件については、公式ドキュメントを参照してください。
環境:
- Windows 11
- VS2022
環境設定
cmdを開いてプロキシを設定する
set http_proxy=http://127.0.0.1:7890 & set https_proxy=http://127.0.0.1:7890
注: cmd コマンド ラインを使用し、powershell は使用しないでください。
depot_tools をダウンロード
depot_tools バンドルファイルをダウンロードして解凍します (例: C:\src\depot_tools)。
ここでは、パス D:\Code\chromium\depot_tools の下に置きます。
次に、環境変数を設定します
set path=D:\Code\chromium\depot_tools;%path%
クロムコードをダウンロード
vs2022_install という名前の環境変数を設定して、vs2022 のインストール パスを指定します。
set vs2022_install=D:\Program Files\Microsoft Visual Studio\2022\Community
ローカル VS コンパイルをセットアップする
set DEPOT_TOOLS_WIN_TOOLCHAIN=0
次に、次を実行します。
gclient
最初の実行時に、gclient は、msysgit や Python など、コードを使用するために必要な Windows 固有のビットをすべてインストールします。
次に、fetch --no-history chromium
ダウンロードしたクロムコードを実行します
fetch --no-history chromium
--no-history
通常、ダウンロードは使用状況によりすぐに完了します。
Updating depot_tools...
Downloading CIPD client for windows-amd64 from https://chrome-infra-packages.appspot.com/client?platform=windows-amd64&version=git_revision:6e9be28a4c4e3a804f400dc6c2ed08b866f0a38b...
Running: 'C:\Users\LMR\.vpython-root\store\python_venv-57g7dfur34kej3luifcgqdfurg\contents\Scripts\python3.exe' 'D:\Code\chromium\depot_tools\gclient.py' root
WARNING: Your metrics.cfg file was invalid or nonexistent. A new one will be created.
Running: 'C:\Users\LMR\.vpython-root\store\python_venv-57g7dfur34kej3luifcgqdfurg\contents\Scripts\python3.exe' 'D:\Code\chromium\depot_tools\gclient.py' config --spec 'solutions = [
{
"name": "src",
"url": "https://chromium.googlesource.com/chromium/src.git",
"managed": False,
"custom_deps": {},
"custom_vars": {},
},
]
gclient sync
ただし、完全なコードをダウンロードする必要があります。
gclient sync
お待ちください...その後、ダウンロード完了のプロンプトが表示されます。
コンパイル
ダウンロードが完了したら、srcディレクトリに入り、buildディレクトリを設定します。
cd src
gn gen out/Default
コンパイルを開始する
autoninja -C out\Default chrome
その後、コンパイルが完了するまで待ちます。この間、CPU 使用率が非常に高くなるため、他の操作を実行することはお勧めできません。
コンパイル プロセス中に gbk エンコードに関する警告が表示される場合がありますが、これは無視できます。
コンパイルが完了すると、D:\Code\chromium\src\out\Default
パスに chrome.exe が表示されるので、クリックして実行します。
これは、コンパイルが完了し、chrome.exe が正常に実行できることを示しています。
VSプロジェクトの生成
VS sln プロジェクトを生成できます。src\out\Default
パスの下に all.sln プロジェクトがあります。
gn gen --ide=vs out\Default
次のコマンドを使用して、VS でプロジェクトを直接開きます
devenv out\Default\all.sln
クロムプロジェクトはサイズが大きいため、開く速度が遅くなります。
エラー解決
No downloadable toolchain found. In order to use your locally installed version of Visual Studio to build Chrome please set DEPOT_TOOLS_WIN_TOOLCHAIN=0.
For details search for DEPOT_TOOLS_WIN_TOOLCHAIN in the instructions at https://chromium.googlesource.com/chromium/src/+/HEAD/docs/windows_build_instructions.md
エラーメッセージは明らかですが、その理由は設定がないためですset DEPOT_TOOLS_WIN_TOOLCHAIN=0
ダウンロードが失敗し続ける
最初に使用したダウンロード コードは常にダウンロードに失敗しましたが、コマンド ライン ツールWindows Terminal
に切り替えるとダウンロードが成功しました。x64 Native Tools Command Prompt for VS 2022
そのため、ネットワークの問題以外でダウンロードに失敗した場合は、端末を切り替えて試すことができます。Chromium のドキュメントには、非コマンド ライン (CMD) (cygwin、PowerShell など) から gclient を実行すると、問題なく動作するように見えるかもしれないが、msysgit、python、その他のツールは正しくインストールされないとも記載されています。
D:\Code\chromium>gn gen out/Default
ERROR Can't find source root.
I could not find a ".gn" file in the current directory or any parent,
and the --root command-line argument was not specified.
このエラーは、src ディレクトリが入力されていないために gn ファイルが見つからないために発生します。
以下のファイルをすべて削除しout\Default\obj\components\device_signals\core\browser
、プロジェクトを再生成してコンパイルします。
gn gen out/Default
autoninja -C out\Default chrome
要約する
Chrome ソースコードをダウンロードする際には、ハードウェア要件に加えて、ネットワーク環境、特に家庭内ネットワークの要件もありますが、cmd コマンドラインを使用してダウンロードすることに注意すれば、基本的には問題ありません。
Chromium ドキュメント - Windows 用 Chromium のチェックアウトとビルド (googlesource.com)