Chromium Embedded Framework (CEF) とは、Google Chrome の表示部分だけを抜き出したフレームワーク。他のアプリに埋め込んで使う。Chromium Project では HTML 表示エンジン Blink をそのまま使うよりも CEF を使う事を推奨している。Chromium が更新されると CEF もバージョンに追従して更新される。CEF は Chromium 本体から作られるので、まともにやるとビルドに何時間もかかる。そこで、Spotify 社が提供するビルド済ライブラリを使うのがお薦めの利用法だ。
https://bitbucket.org/chromiumembedded/cef-project を参考にサンプルプロジェクトのビルド手順をやってみた。16.04.1 LTS 利用。
準備
sudo apt-get install -y build-essential gtk2.0 libgtk2.0-dev libgtkglext1-dev
ダウンロード
git clone https://bitbucket.org/chromiumembedded/cef-project.git
cd cef-project/
mkdir build
cd build
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ..
この手順で http://opensource.spotify.com/cefbuilds/index.html からビルド済 CEF バイナリをダウンロードする。バイナリのバージョンは CMakeLists.txt に記載。
ビルド
make -j4 cefclient cefsimple
実行
./third_party/cef/cef_binary_3.2924.1570.g558741c_linux64/tests/cefsimple/Release/cefsimple
Spotify が提供していない環境以外で CEF を使うにはライブラリのビルドが必要。 https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding#markdown-header-automated-method の手順でやってみたが今のところ
../../chrome/browser/safe_browsing/settings_reset_prompt/settings_reset_prompt_controller.cc:84: error: undefined reference to 'safe_browsing::SettingsResetPromptController::ShowSettingsResetPrompt(Browser*, safe_browsing::SettingsResetPromptController*)'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
というエラーが出て失敗してしまった。