This Wiki page provides a quick-start guide for creating a Debug build of CEF/Chromium using the current master (development) branch.
Note to Editors: Changes made to this Wiki page without prior approval via the CEF Forum or Issue Tracker may be lost or reverted.
MacOS & Windows Tower is available on macOS (10.11+) and Windows (7 SP2+). On which operating system you use your license is up to you: all licenses work cross-platform, on macOS and Windows.
- Can you try the following steps: Wipe SourceTree preferences. Uninstall SourceTree (if it shows on the App&Features list) Backup then delete the directory below before proceeding with next step. Navigate to C:UsersAppDataLocal and delete SourceTree & SourceTree-Settings folder. Navigate to C:UsersAppDataLocal.
- Although SourceTree for macOS has updated the name of Azure DevOps (from 'Visual Studio Team Services'), it appears that it does not support the new Azure DevOps URLs. You can use the old-format (VSTS-style) URLs.
- Sourcetree for macOS and Windows. Confluence Server and Confluence Data Center. Sourcetree for macOS and Windows. Sourcetree for macOS.
- In this video I show you How to install Source Tree on your computer.
This page provides a quick-start guide for setting up a minimal development environment and building the master branch of Chromium/CEF for development purposes. For a comprehensive discussion of the available tools and configurations visit the BranchesAndBuilding Wiki page.
This guide is NOT intended for:
- Those seeking a prebuilt binary distribution for use in third-party apps. Go here instead.
- Those seeking to build the binary distribution in a completely automated manner. Go here instead.
Development systems can be configured using dedicated hardware or a VMware, Parallels or VirtualBox virtual machine.
The below steps can often be used to develop the most recent release branch of CEF/Chromium in addition to the master branch. Chromium build requirements change over time so review the build requirements listed on the BranchesAndBuilding Wiki page before attempting to build a release branch. Then just add --branch=XXXX
to the automate-git.py command-line where 'XXXX' is the branch number you wish to build.
The same file structure will be used on all platforms. '~' can be any path that does not include spaces or special characters. We'll be building this directory structure for each platform in the following sections.
With this file structure you can develop multiple CEF/Chromium branches side-by-side. For example, repeat the below instructions using 'chromium_git1' as the directory name instead of 'chromium_git'.
What's Required
- Windows Build Requirements as listed on the BranchesAndBuilding Wiki page.
- Install required Visual Studio sub-components as described here.
- Install the exact Windows SDK version specified in the default location to avoid build issues.
- At least 8GB of RAM (32GB+ recommended) and 90GB of free disk space (for a Debug build).
- Approximately 4 hours with a fast internet connection (100Mbps) and fast build machine (2.4Ghz, 16 logical cores, SSD).
Step-by-step Guide
All of the below commands should be run using the system 'cmd.exe' and not a Cygwin shell.
1. Create the following directories.
WARNING: If you change the above directory names/locations make sure to (a) use only ASCII characters and (b) choose a short file path (less than 35 characters total). Otherwise, some tooling may fail later in the build process due to invalid or overly long file paths.
2. Download depot_tools.zip and extract to 'c:codedepot_tools'. Do not use drag-n-drop or copy-n-paste extract from Explorer, this will not extract the hidden '.git' folder which is necessary for depot_tools to auto-update itself. You can use 'Extract all...' from the context menu though. 7-zip is also a good tool for this.
3. Run 'update_depot_tools.bat' to install Python and Git.
4. Add the 'c:codedepot_tools' folder to your system PATH. For example, on Windows 10:
- Run the 'SystemPropertiesAdvanced' command.
- Click the 'Environment Variables...' button.
- Double-click on 'Path' under 'System variables' to edit the value.
5. Download the automate-git.py script to 'c:codeautomateautomate-git.py'.
6. Create the 'c:codechromium_gitupdate.bat' script with the following contents.
Run the 'update.bat' script and wait for CEF and Chromium source code to download. CEF source code will be downloaded to 'c:codechromium_gitcef' and Chromium source code will be downloaded to 'c:codechromium_gitchromiumsrc'. After download completion the CEF source code will be copied to 'c:codechromium_gitchromiumsrccef'.
7. Create the 'c:codechromium_gitchromiumsrccefcreate.bat' script with the following contents.
Run the 'create.bat' script to generate Ninja and Visual Studio project files.
This will generate a 'c:codechromium_gitchromiumsrcoutDebug_GN_x86cef.sln' file that can be loaded in Visual Studio for debugging and compiling individual files. Replace “x86” with “x64” in this path to work with the 64-bit build instead of the 32-bit build. Always use Ninja to build the complete project. Repeat this step if you change the project configuration or add/remove files in the GN configuration (BUILD.gn file).
8. Create a Debug build of CEF/Chromium using Ninja. Edit the CEF source code at 'c:codechromium_gitchromiumsrccef' and repeat this step multiple times to perform incremental builds while developing.
Replace 'Debug' with 'Release' to generate a Release build instead of a Debug build. Replace “x86” with “x64” to generate a 64-bit build instead of a 32-bit build.
9. Run the resulting cefclient sample application.
See the Windows debugging guide for detailed debugging instructions.
What's Required
- macOS Build Requirements as listed on the BranchesAndBuilding Wiki page.
- At least 8GB of RAM (16GB+ recommended) and 100GB of free disk space (for a Debug build).
- Approximately 4 hours with a fast internet connection (100Mbps) and fast build machine (2.4Ghz, 16 logical cores, SSD).
Step-by-step Guide
In this example '~' is '/Users/marshall'. Note that in some cases the absolute path must be used. Environment variables described in this section can be added to your '~/.bash_profile' file to persist them across sessions.
1. Create the following directories.
2. Download '~/code/depot_tools' using Git.
3. Add the '~/code/depot_tools' directory to your PATH. Note the use of an absolute path here.
4. Download the automate-git.py script to '~/code/automate/automate-git.py'.
5. Create the '~/code/chromium_git/update.sh' script with the following contents.
Give it executable permissions.
Run the 'update.sh' script and wait for CEF and Chromium source code to download. CEF source code will be downloaded to '~/code/chromium_git/cef' and Chromium source code will be downloaded to '~/code/chromium_git/chromium/src'. After download completion the CEF source code will be copied to '~/code/chromium_git/chromium/src/cef'.
6. Create the '~/code/chromium_git/chromium/src/cef/create.sh' script with the following contents.
Give it executable permissions.
Run the 'create.sh' script to create Ninja project files. Repeat this step if you change the project configuration or add/remove files in the GN configuration (BUILD.gn file).
7. Create a Debug build of CEF/Chromium using Ninja. Edit the CEF source code at '~/code/chromium_git/chromium/src/cef' and repeat this step multiple times to perform incremental builds while developing.
Replace 'Debug' with 'Release' to generate a Release build instead of a Debug build.
8. Run the resulting cefclient sample application.
See the Mac OS X debugging guide for detailed debugging instructions.
What's Required
- Linux Build Requirements as listed on the BranchesAndBuilding Wiki page.
- Building with other versions or distros has not been tested and may experience issues.
- At least 6GB of RAM (16GB+ recommended) and 60GB of free disk space (for a Debug build).
- Approximately 3 hours with a fast internet connection (100Mbps) and fast build machine (2.4Ghz, 16 logical cores, SSD).
Step-by-step Guide
In this example '~' is '/home/marshall'. Note that in some cases the absolute path must be used. Environment variables described in this section can be added to your '~/.profile' or '~/.bashrc' file to persist them across sessions.
1. Create the following directories.
2. Download and run '~/code/install-build-deps.sh' to install build dependencies. Answer Y (yes) to all of the questions.
3. Install the 'libgtkglext1-dev' package required by the cefclient sample application.
4. Download '~/code/depot_tools' using Git.
5. Add the '~/code/depot_tools' directory to your PATH. Note the use of an absolute path here.
6. Download the '~/automate/automate-git.py' script.
7. Create the '~/code/chromium_git/update.sh' script with the following contents.
Sourcetree App
Give it executable permissions.
Run the 'update.sh' script and wait for CEF and Chromium source code to download. CEF source code will be downloaded to '~/code/chromium_git/cef' and Chromium source code will be downloaded to '~/code/chromium_git/chromium/src'. After download completion the CEF source code will be copied to '~/code/chromium_git/chromium/src/cef'.
8. Create the '~/code/chromium_git/chromium/src/cef/create.sh' script with the following contents.
Give it executable permissions.
Run the 'create.sh' script to create Ninja project files. Repeat this step if you change the project configuration or add/remove files in the GN configuration (BUILD.gn file).
9. Create a Debug build of CEF/Chromium using Ninja. Edit the CEF source code at '~/code/chromium_git/chromium/src/cef' and repeat this step multiple times to perform incremental builds while developing. Note the additional 'chrome_sandbox' target required by step 10.
Replace 'Debug' with 'Release' to generate a Release build instead of a Debug build.
10. Set up the Linux SUID sandbox.
11. Run the cefclient sample application.
Cannot Install Sourcetree On Mac
See the Linux debugging guide for detailed debugging instructions.
- If you're seeking a good code editor on Linux check out the Eclipse and Emacs tutorials.
- Review the Tutorial and GeneralUsage Wiki pages for details on CEF implementation and usage.
- Review the Chromium debugging guide for Windows, Mac OS X or Linux.
- When you’re ready to contribute your changes back to the CEF project see the ContributingWithGit Wiki page for instructions on creating a pull request.
Sourcetree Mac M1
Updated