The project organization for CEF3 on OS-X is somewhat complicated. The easiest way to understand is by building cefclient and looking at the resulting app bundle contents.
- Code: Select all
cefclient.app/
Contents/
Frameworks/
Chromium Embedded Framework.framework/
Libraries/
ffmpegsumo.so <= HTML5 audio/video support
libcef.dylib <= CEF dynamic library
Resources/ <= WebKit cursor resources, cef.pak, localized pak files
libplugin_carbon_interpose.dylib <= Plugin support
cefclient Helper.app/
Contents/
Info.plist
MacOS/
cefclient Helper <= helper executable
Pkginfo
cefclient Helper EH.app/
Contents/
Info.plist
MacOS/
cefclient Helper EH <= helper executable
Pkginfo
cefclient Helper NP.app/
Contents/
Info.plist
MacOS/
cefclient Helper NP <= helper executable
Pkginfo
Info.plist
MacOS/
cefclient <= cefclient executable
Pkginfo
Resources/ <= cefclient resources
The "Chromium Embedded Framework.framework" is an unversioned framework [1] that effectively replaces libcef.dylib. All of the executables are linked to this framework using install_name_tool and a path relative to @executable_path.
The "cefclient Helper" apps are used for executing separate processes (renderer, plugin, etc) with different characteristics [2]. They need to have separate app bundles and Info.plist files so that they don't show dock icons, etc. They effectively just bootstrap the "Chromium Embedded Framework.framework" library.
[1]
http://src.chromium.org/viewvc/chrome/t ... iew=markup[2]
http://src.chromium.org/viewvc/chrome/t ... iew=markup