LoginSignup
8
8

More than 5 years have passed since last update.

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

Posted at

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

Get the Code

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

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

Ninja Build

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

OSXの場合は以下となる。

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

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

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のこと。

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

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

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

  • pyobjc-core

  • pyobjc-framework-Cocoa

  • pyobjc-framework-Quartz

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

ImportError: No module named pkg_resources

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

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

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8