Chromium Embedded Framework (CEF) Automation Tool ------------------------------------------------------------------------------- Document Last Updated: October 10, 2011 OVERVIEW -------- The CEF Automation Tool can perform the following actions in an automated manner: 1. Download/update the Chromium and CEF source code. 2. Build the CEF Debug and Release targets. 3. Create the CEF binary distribution package. SETUP ----- 1. Install Subversion [1] and Python [2]. Make sure the bin directories for both programs are discoverable via your system PATH configuration. On Windows install CppDoc [3] in the default location (assumes a 64bit version of Windows 7). 2. Install build tools. On Windows install Visual Studio 2008 or newer and all required prerequisite software [4]. On Mac install Xcode 3.2 or newer. 3. Configure the GYP environment. On Windows set the GYP_MSVS_VERSION environment variable to "2008" or "2010" depending on which version of Visual Studio you're building with. On Mac Lion set the GYP_DEFINES environment variable to 'mac_sdk=10.6'. 4. Checkout the "automate" folder to a location on your hard drive. For the trunk version of CEF you can use the following command: svn checkout http://chromiumembedded.googlecode.com/svn/trunk/cef1/tools/automate /path/to/automate 5. Run the automate.py script at whatever interval is appropriate (for each CEF commit, once per day, once per week, etc): python /path/to/automate/automate.py --download-dir=/path/to/download HOW IT WORKS ------------ The automate.py script performs the following actions in the download directory specified by the "--download-dir" flag. This path value must contain no spaces. 1. Retrieve the Chromium URL and revision associated with a CEF URL and revision. A specific CEF URL and revision can be specified using the "--url" and "--revision" flags. Otherwise, the current CEF trunk URL [7] and HEAD revision will be used. The Chromium URL and revision are retrieved by querying the SVN repository for a CHROMIUM_BUILD_COMPATIBILITY.txt file. 2. If a "depot_tools" folder does not already exist download depot_tools [5]. The depot_tools folder will be added to the beginning of the PATH to support execution of the below steps. 3. If a "chromium" folder does not already exist create it and configure gclient [6] using the Chromium URL retrieved in step 1. To force execution of this step use the "--force-config" flag. 4. If the "--force-clean" flag is specified all Chromium changes will be reverted, all unversioned files including the CEF folder will be deleted and steps 6-10 will be triggered automatically. 5. If both Chromium and CEF are already at the correct URL and revision the script will exit at this point. To force execution of steps 6-8 use the "--force-update" flag. To force execution of step 9 use the "--force-build" flag. To force execution of step 10 use the "--force-distrib" flag. 6. Use gclient [6] to update the Chromium source code to the correct revision. 7. If a "chromium/src/cef" folder does not already exist download the CEF source code at the correct revision. Otherwise, update CEF source code to the correct revision. 8. Run the "chromium/src/cef/cef_create_projects.[sh|bat]" script to apply CEF patches and generate CEF project files. 9. Run the "chromium/src/cef/tools/build_projects.[sh|bat]" script twice; once to build the Debug target and once to build the Release target. 10.Run the "chromium/src/cef/tools/make_distrib.[sh|bat]" script to build the binary distribution package. The resulting package will be output in a "chromium/src/cef/binary_distrib/cef_binary_rXXX_[windows|macosx]" folder. REFERENCES ---------- [1] http://subversion.apache.org/ [2] http://www.python.org/ [3] http://www.cppdoc.com/ [4] http://dev.chromium.org/developers/how-tos/build-instructions-windows [5] http://dev.chromium.org/developers/how-tos/depottools [6] http://dev.chromium.org/developers/how-tos/get-the-code [7] http://chromiumembedded.googlecode.com/svn/trunk/cef1