Help us understand the problem. What is going on with this article?

Chromiumのビルドでつまった話 on MAC OSX 10.8

More than 5 years have passed since last update.

ChromiumをMacでビルドしようとしたら、色々と詰まったので備忘録として書いてみる。

Get the Code

ソースコードの入手方法は以下に書いてある。
http://dev.chromium.org/developers/how-tos/get-the-code

空き容量が少ないと、失敗したというログ(保存し忘れた)を吐きつつも何度もやり直すので無限ループになる。特にWebKitは容量が大きいので4~5時間経っても終わらない場合は、空き容量を増やした方が良いかもしれない。

Ninja Build

Buildの方法については、以下のページにプラットフォームごとへのリンクが張られている。

http://www.chromium.org/Home

OSXの場合は以下となる。

https://code.google.com/p/chromium/wiki/MacBuildInstructions

NinjaとClangを使う方法しかサポートされていない。
Ninjaを使った方法は以下のページで説明されている。

https://code.google.com/p/chromium/wiki/NinjaBuild

よく分からないエラーで止まったときは

ninja -v -C out/Debug chrome

これで、コマンドを全部見てみる。

pythonのversion

Ninjaでビルドしていたら、以下のようなエラーが出てきた。

Failed at tvcm: </script> expected but get </h2>

エラーを保存し忘れたので文自体は違うかもしれないが、tvcmをparseしている最中にscriptの閉じタグがこなきゃいけないのに、h2がきているといった内容。

chromium/src/third_party/trace-viewer/third_party/tvcm/src/tvcm.html (chromiumはsrcまでのpath)

を見てみるとしっかりscriptタグで閉じられているが、途中で

panicMessageEl.innerHTML =
    '<h2 id="message"></h2>' +
    '<pre id="details"></pre>';

という式を発見。h2タグを消してみるとpreタグでエラーになった。
パーサが怪しそうなので、使用しているHTMLパーサを調べてみると標準ライブラリを使用していた。このタイミングでPythonのversionが怪しいと思って調べてみると、2.7.3だった。最新のversion(2.7.8)にしてみたら、エラーが出なくなった。

ImportError: No module named CoreFoundation

今度は、以下のエラーが出てきた。

[7/15257] MACTOOL copy-bundle-resource ../../breakpad/src/client/mac/sender/English.lproj/Localizable.strings
FAILED:  ./gyp-mac-tool copy-bundle-resource ../../breakpad/src/client/mac/sender/English.lproj/Localizable.strings crash_report_sender.app/Contents/Resources/English.lproj/Localizable.strings
Traceback (most recent call last):
  File "./gyp-mac-tool", line 515, in <module>
    sys.exit(main(sys.argv[1:]))
  File "./gyp-mac-tool", line 28, in main
    exit_code = executor.Dispatch(args)
  File "./gyp-mac-tool", line 43, in Dispatch
    return getattr(self, method)(*args[1:])
  File "./gyp-mac-tool", line 66, in ExecCopyBundleResource
    self._CopyStringsFile(source, dest)
  File "./gyp-mac-tool", line 105, in _CopyStringsFile
    import CoreFoundation
ImportError: No module named CoreFoundation

CoreFoundationなんてmodule無いよという内容。
CoreFoundationとはAppleが提供しているframeworkのこと。

https://developer.apple.com/library/mac/documentation/CoreFoundation/Reference/CoreFoundation_Collection/_index.html

これをpythonから呼び出せるようにするため、pyobjcが必要となる。install方法は以下に載ってる。

https://pythonhosted.org/pyobjc/install.html

pipとeasy_installのどちらでinstallしようとしても失敗する。調べてみると以下のようなissueがあった。

https://bitbucket.org/ronaldoussoren/pyobjc/issue/92/failed-to-install-pyobjc-301-with-pip-on

まだ、issueが解決していないので手動でinstallすることにする。

  • pyobjc-core

  • pyobjc-framework-Cocoa

  • pyobjc-framework-Quartz

の順にinstallする。
pyobjc-framework-Cocoaをinstallしようとすると以下のエラーが出た。

ImportError: No module named pkg_resources

調べてみると、stackoverflowに解決方法があった。

http://stackoverflow.com/questions/7446187/no-module-named-pkg-resources

pyobjcをinstallし終えた後にbuildしてみるとエラーを吐かなくなった。

eventhub
EventHubは「イベントでの繋がりを増やす」をテーマに、参加者同士の情報交換・面談を促進するイベント・マーケティングツールです。
https://eventhub.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした