Table of Contents
All CEF4Delphi applications need the CEF libraries and some other data files in order to run.
The "readme.md" file in this project has several links to the CEF binaries with all those files.
32 bits applications for Windows will use the CEF binaries found in the "Windows 32 bits" link, while the 64 bits applications for Windows will use the CEF binaries in the "Windows 64 bits" link.
Linux applications require the CEF binaries available in the links starting with "Linux" and they also have to use the appropiate link depending on the CPU type (x86/ARM) and bitness (32/64).
Once you have downloaded the CEF binaries package you'll need to decompress it. In the case of Windows and Linux you have to copy the contents of the "Release" and "Resources" directories inside the "bin" directory of CEF4Delphi.
Windows
All the demos create the executable file inside the "bin" directory and the final layout looks like this in Windows :
Linux
In Linux it looks like this :
The CEF binaries for Linux include the debug symbols. This is useful for debugging but it's necessary to remove them in the final build by executing this command in a Linux console window : strip libcef.so
. Removing the debug symbols from the CEF binaries for Linux will reduce their size considerably and they will also load much faster.
macOS
macOS app bundles must have the right directory structure and contents. In this case you have to decompress the CEF binaries package and copy the contents of the "Release/Chromium Embedded Framework.framework" directory into the "appname.app/Contents/Frameworks/Chromium Embedded Framework.framework/" directory.
Additionally, you the macOS demos need to have 5 helpers inside the "appname.app/Contents/Frameworks/" directory with the following names :
- appname Helper.app
- appname Helper (GPU).app
- appname Helper (Plugin).app
- appname Helper (Renderer).app
- appname Helper (Alerts).app
The final layout of a macOS app bundle with the CEF binaries and the 4 helpers looks like this :
appname.app/
Contents/
Frameworks/
Chromium Embedded Framework.framework/
Chromium Embedded Framework
Libraries/
libEGL.dylib
libGLESv2.dylib
libswiftshader_libEGL.dylib
libswiftshader_libGLESv2.dylib
libvk_swiftshader.dylib
vk_swiftshader_icd.json
Resources/
chrome_100_percent.pak
chrome_200_percent.pak
resources.pak.pak
Info.plist
icudtl.dat
snapshot_blob.bin
v8_context_snapshot.x86_64.bin
en.lproj/
locale.pak
es.lproj/
locale.pak
****.lproj/
locale.pak
appname Helper.app/
Contents/
Info.plist
MacOS/
appname Helper
Pkginfo
appname Helper (GPU).app/
Contents/
Info.plist
MacOS/
appname Helper (GPU)
Pkginfo
appname Helper (Plugin).app/
Contents/
Info.plist
MacOS/
appname Helper (Plugin)
Pkginfo
appname Helper (Renderer).app/
Contents/
Info.plist
MacOS/
appname Helper (Renderer)
Pkginfo
appname Helper (Alerts).app/
Contents/
Info.plist
MacOS/
appname Helper (Alerts)
Pkginfo
Info.plist
MacOS/
appname
Pkginfo
Resources/
binding.html, ...
Notarization in macOS
Notarization under macOS 14 Sonoma now requires target for 10.9+. If you use Lazarus, read this forum thread for more details and use the -WM11.0 custom option in the project options as described in this issue.
Additional notes :
- If you copy the "Debug" directory instead of the "Release" directory you will have unexpected issues.
- CEF evolves quickly and each CEF4Delphi version needs a specific version of the CEF binaries. Always use the links in the "readme.md" file to download the right CEF binaries.