ofxCef のビルド手順


ofxCef とは

CEF (Chromium Embedded Framework) を openFrameworks から使えるようアドオン化したもの。ざっくり言うと oF に Chrome を組み込めます。
作者は Zach 先生だけど実質 Dpt. の Hugues Bruyère 氏がメインコントリビュータの模様。

Web + ネイティブだと最近は Electron が有名ですが、あちらもベースは Chromium です。

何が嬉しいか

Chromium の資産がまるごと oF (C++) で使えます。

  • Canvas
  • WebGL
  • WebSocket

などなど。
また Google Maps や YouTube など C++ から使うのが難しかったコンテンツも埋め込めます。嬉しいですね!

ビルドする

環境

  • Xcode Version 6.4 (6E35b)
  • openFrameworks v0.8.4

1.ソース類をダウンロード

CEF をここから、ofxCef をここからダウンロードします。
CEF はいくつかリビジョンがありますが、今回は cef_binary_3.2171.1979_macosx32 を使います。oF が 32bit なので合わせます。

2015.08.23 追記
Brunch 2272 以降 Mac OS X 32bit のサポートは終了したそうです。
oF v0.9.0 以降は 64bit に対応するので Release Brunches から落としてきたほうがよさげです。

2.addons フォルダに配置

ofxCef を解凍して他のアドオンと同様に addons フォルダに置きます。
中身は以下の通り。

  • CEF
    • include ... CEF 本体のヘッダ群
    • lib ... ライブラリ類
  • src ... ofxCef のソース
  • example-ofxCEF ... サンプルプロジェクト

とりあえず example-ofxCEF に入っている Xcode プロジェクトを開くと example の他に cefHelper というターゲットがあるのがわかります。

README を読むとまずこのヘルパーアプリをビルドしてねと書いてありますが、ビルドすると libcef_dll_wrapper が無いために下記のエラーが出ます。

ld: library not found for -lcef_dll_wrapper
clang: error: linker command failed with exit code 1 (use -v to see invocation)

3.libcef_dll_wrapper をリンクして cefHelper をビルド

ここでさっき落としてきた CEF 本体を使用します。
解凍し中した中にある cefclient.xcodeproj がを開くとターゲットに libcef_dll_wrapper があるので、これを指定してビルドします。

cef_binary_3.2171.1979_macosx32/xcodebuild/Debug に libcef_dll_wrapper.a ができているので、これをさっきの cefHelper にリンクします。

この状態で cefHelper のビルドをおこなうと無事成功するはず。

4.example のビルド

次にターゲットをexample-ofxCEF Debug に変更して、同じように libcef_dll_wrapper.a をリンクします。
ビルドして http://mrdoob.com/ が表示されれば成功です。おめでとうございます!

Next...

続編として projectGenerator を使用してイチから ofxCef なプロジェクトを作成する方法を書きます。

書きました -> ofxCef を使用した app を作る