28
ソースを読む会 Chromium のソースをさわってみる。 ごめんなさい今回はさわるだけです。 2012/08/21 くまだす @kumadasu 1 12821日火曜日

Chromium androidビルド

Embed Size (px)

Citation preview

Page 1: Chromium androidビルド

ソースを読む会Chromium のソースをさわってみる。ごめんなさい今回はさわるだけです。

2012/08/21 くまだす @kumadasu

112年8月21日火曜日

Page 2: Chromium androidビルド

発表までの経緯

•最初は Android on Pandaboard のカメラ周りのソースをいじるつもりだったけど優先したい事案発生。

• Ubuntu on Pandaboard 向けに新しい Chromium をビルドしたい。(まだうまくいっていない)

•ソースを読む会とあまりに関係ないので Android 版にちょっと手を出してみた

212年8月21日火曜日

Page 3: Chromium androidビルド

CHROMIUM

• Chrome のオープンソース版

•デスクトップ版Chromiumは何が違うのかわからない

• ARM, Android もビルド方法公開中...?

312年8月21日火曜日

Page 4: Chromium androidビルド

ANDROID 版 CHROMIUM?ビルド環境

• Ubuntu12.04 少し新しすぎるかもでも可能

• 64bit 多分必須

•メモリ4GB、スワップ8GB 推奨

• Virtualboxの上でもできた

412年8月21日火曜日

Page 5: Chromium androidビルド

BUILD INSTRUCTION

• http://code.google.com/p/chromium/wiki/AndroidBuildInstructions

•ここにすべてが書いてある

•リンクで結構飛ばされるけどね

•ふんふん言いながら進めているとビルド中に衝撃の事実発覚

512年8月21日火曜日

Page 6: Chromium androidビルド

BEFORE

612年8月21日火曜日

Page 7: Chromium androidビルド

!!!

At this time, a full compile does not build the browser. It only builds unit test

bundles. As more code becomes available in the public Chromium source, more

targets will be added.

712年8月21日火曜日

Page 8: Chromium androidビルド

AFTER

•今のところフルコンパイルしてもブラウザにならないよ。ユニットテスト単位だよ。Chromiumのコードがもっと公開されたらターゲット増えていくよ。

812年8月21日火曜日

Page 9: Chromium androidビルド

目標

• Android 版 Chromium のソースコードが公開されたらいち早くビルドできるようになる。

912年8月21日火曜日

Page 10: Chromium androidビルド

ビルドの流れ

•開発に必要なツールの取得

• Chromium のソースコードの取得

• Android のビルドに必要なパッケージの取得

•ビルド

1012年8月21日火曜日

Page 11: Chromium androidビルド

必要なツールの取得(1)

•まずUbuntuのパッケージ

•用意されたスクリプトを使うと楽。

• $ wget http://src.chromium.org/svn/trunk/src/build/install-build-deps.sh

• $ chmod +x install-build-deps.sh

• $ sudo ./install-build-deps.sh

1112年8月21日火曜日

Page 12: Chromium androidビルド

必要なツールの取得(2)

• depot_tools の取得

• $ git clone https://git.chromium.org/chromium/tools/depot_tools.git

•パスの設定(必要なら ~/.bashrcへ)

• $ export PATH="$PATH":`pwd`/depot_tools

1212年8月21日火曜日

Page 13: Chromium androidビルド

DEPOT_TOOLS の中身

• Google謹製の便利ツール集?(お馴染みrepoも含む)

• gclient : git, svn のすごいやつ?コード取得後に後処理のスクリプトが勝手に走っているような気もする。

• gyp : configure のすごいやつ。

• ninja : make のすごいやつ。(わからないので未使用)

1312年8月21日火曜日

Page 14: Chromium androidビルド

ソースコードの取得

• $ cd ~/chromium

• $ gclient config https://src.chromium.org/chrome/trunk/src

• $ svn ls https://src.chromium.org/chrome

•編集→~/chromium/.gclient

•シンク(後述)

1412年8月21日火曜日

Page 15: Chromium androidビルド

.GCLIENT の編集solutions = [ { "name" : "src", "url" : "http://src.chromium.org/svn/trunk/src", "deps_file" : "DEPS", "managed" : True, "custom_deps" : { "src/third_party/WebKit/LayoutTests": None, "src/chrome/tools/test/reference_build/chrome_win": None, "src/chrome_frame/tools/test/reference_build/chrome_win": None, "src/chrome/tools/test/reference_build/chrome_linux": None, "src/chrome/tools/test/reference_build/chrome_mac": None, "src/third_party/hunspell_dictionaries": None, }, "safesync_url": "http://chromium-status.appspot.com/lkgr", },]target_os = ['android']

テストコードの取得を省略

Android関係のソースを含める

1512年8月21日火曜日

Page 16: Chromium androidビルド

ソースコードの取得の続き

• $ gclient sync -j8 --nohooks

• $ . build/android/envsetup.sh

• $ gclient runhooks ここの . と build の間のスペース超重要

そのままsyncするとhookが走って二度手間?

1612年8月21日火曜日

Page 17: Chromium androidビルド

ANDROID のビルドに必要なパッケージの取得

• cd ~/chromium/src/build

• sudo ./install-build-deps-android.sh

•これが ant1.8 が見つからないといって止まる。

• java のパッケージも見つからない

•これらを越えてもなんかエラーがでる。

1712年8月21日火曜日

Page 18: Chromium androidビルド

スクリプトの修正

• install-build-deps-android.sh

• Ubuntu12.04 では ant1.8 が標準になり名前が ant になってる。

• # Install deps

• sudo apt-get -y install python-pexpect ant1.8 xvfb x11-utils

1812年8月21日火曜日

Page 19: Chromium androidビルド

JAVA のインストール準備

• Oracle Java になってから少し手順が面倒

• cd ~/

• wget https://github.com/flexiondotorg/oab-java6/raw/0.2.5/oab-java.sh -O oab-java.sh

• chmod +x oab-java.sh

• sudo ./oab-java.sh

1912年8月21日火曜日

Page 20: Chromium androidビルド

改めてスクリプトの実行

• sudo ./install-build-deps-android.sh

•下のようなエラーがでるけど無視してよし。

• WARNING: java-6-sun has no alternatives for the following plugins:

• update-alternatives: error : no alternatives for mozilla-javaplugin.so.

2012年8月21日火曜日

Page 21: Chromium androidビルド

コンフィグ&ビルド!

• $ cd ~/chromium/src

• $ . build/android/envsetup.sh

• $ android_gyp

• $ make -j8

2112年8月21日火曜日

Page 22: Chromium androidビルド

テスト実行

•いずれもpythonスクリプトで実行

•実機およびエミュレータでテスト可能 らしい

• Running Tests

• Running Instrumentation Tests

• Content Shell (in development)

2212年8月21日火曜日

Page 23: Chromium androidビルド

ビルド後のフォルダ容量

• 18.9GB

2312年8月21日火曜日

Page 24: Chromium androidビルド

これを応用すると...

• Linux, Mac, Win

• 32bit, 64bit, ARM

• Chromium OS!

• http://dev.chromium.org/chromium-os/developer-guide#TOC-Decide-where-your-source-will-live

2412年8月21日火曜日

Page 25: Chromium androidビルド

CHROMIUM OS のビルド

2512年8月21日火曜日

Page 26: Chromium androidビルド

CHROMIUM OS のビルド

• Ubuntu 上で chroot 使って Gentoo? っぽい環境を作って開発。

•手順が結構複雑ですが興味があればぜひ

•私は Pandaboard のオプション使ってやってみたけど、ビルドイメージがうまく動かなかった。

2612年8月21日火曜日

Page 27: Chromium androidビルド

感想

•公式ページの情報が一部古い

•なんかおかしいと思ったら最下部のコメント欄にヒントがあるかも。

• Pandaboard な Linux 向け Chromium のビルドはまだうまく行っていない。ビルドはできているけど実行時の no such file or directory に悩まされてる。

2712年8月21日火曜日