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 を作る