(Chromium)を自分でビルドするいろいろとやる必要があり、Chromiumを手元でコンパイルしたのでその記録。@tzik_tackさんに指摘いただき、一部修正しました。ありがとうございます。ChromeとChromiumまず、予備知識。Chromiumはオープンソースプロジェクト名であり、そのプロダクトがChromiumというWebブラウザ。https://www.chromium.org/もっとも、Chromiumプロジェクト自体Googleが深く関わっているし、普通にそこでの実装の意思決定もGoogleのエンジニアによるものが多いので、実質どっちもGoogleがやってるという理解でおおむね問題ない。Chrome自体はGoogleの著作物なので、自分でビルドするならばChromiumをビルドする、ということになる。基本的には、ドキュメントに書いてある通りにやればいい。ここに私が書いてあることもすぐ陳腐化すると思うので、ドキュメントを読もう。https://chromium.googlesource.com/chromium/src/+/master/docs/linux_build_instructions.mdビルドには、Ubuntuを使った方が良い。SSDのマシンでsln(プロジェクトファイル)開くだけで1時間、ビルドは10時間かけても終わらなかったので、やめた方がいい。ドキュメントには「8GB以上のメモリ(16GB以上を推奨)、100GB以上のディスク空き容量」が必要と書かれているので頑張ろう。16.04.4を使った。gitくらいあればいいはず。(最近のChromeはClang使っているが、chromiumリポジトリに同梱されているためclangパッケージは不要)ビルド手順depot_toolsはじめに、ビルドに必要なdepot_toolsというリポジトリをcloneする。https://chromium.googlesource.com/chromium/tools/depot_tools.gitこの中にある色々なツールを使うので、PATHを通しておくこと。.bashrcに以下のように加える。PATH="$PATH:/home/ozuma/local/depot_tools"続いて適当な作業ディレクトリ内で、dep_toolsのfetchコマンドでソースコードを取得する。この際、--no-historyを付けて最新版のみ取得すると良い。chromiumドキュメントのとおり、このfetchには30分ほどかかる。するとsrcディレクトリができるので移動する。srcここまでで、ソースコードのcheckoutができた。続いてUbuntuの場合、依存性を解決してくれるシェルスクリプトが用意されているので実行する。build/install-build-deps.sh追加パッケージ入手。runhooksここまでで、ビルドの準備が整った。NinjaビルドChromeのビルドは、depot_tools付属のninjaというコマンドで行う。ninjaについては以下。https://ninja-build.org/Ninjaがビルドするためのディレクトリout/Defaultを、depot_tools付属のgnコマンドで作成する。out/Defaultさて、このままビルドしても良いのだが、それだと大変に時間がかかるのでここでいくつかオプションを加える。gnコマンドにargsを付けてオプションを設定する。buildsという設定をすると早くなる。多くのソースコードがヘッダファイルを共有しているのだから、それらを一緒にコンパイルする......と書いてあるけど、具体的な動きはよく分からない。Client)をビルドしないようにする。https://developer.chrome.com/native-clientそれから、デバッグ用に使うわけではないの、デバッグシンボルを全部OFFにする。argsコマンドを打つとvimが起動するので、そこに以下のように記述する。実際には、out/Default/args.gnファイルに書かれる。use_jumbo_build=trueenable_nacl=falsesymbol_level=0remove_webcore_debug_symbols=trueis_debug=falseis_component_build=true最後に、ninjaコマンドでビルドする。timeコマンドを頭に付けて、どのくらいの時間がかかるか見ておいた方がいい。8m46.260sozuma@ubuntu16:~/local/depot_tools/src$私の手元では、全ビルドに5時間半ほどかかった。Windowsに比べればメチャクチャ早い。Chromiumの起動できあがったバイナリはout/Default/chrome。これをたたくと、ちゃんと起動した。特定のバージョンのビルド上記の手順では最新のビルド(Canary相当)が入るので、Stableなど古いバージョンを指定してビルドする場合。https://www.chromium.org/developers/how-tos/get-the-code/working-with-release-branches上記にやり方が書いてあるが、この通りだとエラーを吐く。--disable-syntax-validationを指定する必要がある。validation無しでいいのだろうか)これでタグが持ってこれたので、タグを指定してチェックアウトする。syncは、checkoutしたあとに依存性の更新をするためにもう一度実行する必要がある。あとは同じようにビルドする。関する罪」の情報公開請求をしました月別アーカイブはてなブログをはじめよう!ozumaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。