Clone the depot_tools repository:
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.gitAdd depot_tools to the end of your PATH (you will probably want to put this in your ~/.bashrc or ~/.zshrc). Assuming you cloned depot_tools to /path/to/depot_tools:
$ export PATH="$PATH:/path/to/depot_tools"Create a chromium directory for the checkout and change to it (you can call this whatever you like and put it wherever you like, as long as the full path has no spaces):
$ mkdir path/to/castanets && cd path/to/castanetsDownload the code using the command below.
$ git clone -b castanets_69 https://github.com/Samsung/castanets srcIf you did not specify the 'src' directory name at the end of the command, the source code would have been downloaded to the 'castanets' directory. In this case, change the directory name.
$ mv castanets srcInstall additional build dependencies
$ build/install-build-deps.shWe need a gclient configuration. To create a .gclient file, run:
$ build/create_gclient.shOnce you've run install-build-deps at least once, you can now run the Chromium-specific sync, which will download additional binaries and other things you might need:
$ gclient sync --with_branch_headChromium uses Ninja as its main build tool along with a tool called GN to generate .ninja files. You can create any number of build directories with different configurations. To create a build directory, run:
$ gn gen out/DefaultYou set build arguments on a build directory by typing:
$ gn args out/DefaultThis will bring up an editor. Type build args into that file like this:
enable_castanets=true
enable_nacl=false
is_debug=false
For faster builds, the below can also be added in out/Default/args.gn
remove_webcore_debug_symbols=true
is_component_build=true
use_jumbo_build=true
Build castanets (the “chrome” target) with Ninja using the command:
$ autoninja -C out/Default chromeStart first chrome instance: Browser Process
$ out/Default/chrome <URL>Start second chrome instance: Utility Process (Network Service)
$ out/Default/chrome --type=utility --server-address=127.0.0.1Start third chrome instance: Renderer Process
$ out/Default/chrome --type=renderer --server-address=127.0.0.1Device A: Browser Process
$ out/Default/chrome <URL>Device B: Utility Process (Network Service)
$ out/Default/chrome --type=utility --server-address=<IP ADDR>Device B: Renderer Process
$ out/Default/chrome --type=renderer --server-address=<IP ADDR>