GYP build parameters
Chromium no longer uses GYP but GN. The corresponding page is GN build configuration.
Hence, the following is obsolete.
GYP has many environment variables that configure the way Chrome is built. By modifying these parameters, you can build chrome for different architectures, or speed up the build process. Generally, we strive to have good defaults and you shouldn't have to set many of these. The wiki also has some additional tips on common build tasks.
Specifying parameters
Command-line
To specify build parameters for GYP, you can do so on the command line:
$ ./build/gyp_chromium -Dchromeos=1 -Dcomponent=shared_library
Environment variable
Or with an environment variable:
$ export GYP_DEFINES="chromeos=1 component=shared_library" $ ./build/gyp_chromium
chromium.gyp_env file
Or in a chromium.gyp_env file in your chromium directory:
$ echo "{ 'GYP_DEFINES': 'chromeos=1 component=shared_library' }" > ../chromium.gyp_env
Some common file examples:
Windows:
{ 'GYP_DEFINES': 'component=shared_library' }
Mac:
{ 'GYP_DEFINES': 'fastbuild=1' }
Linux:
{ 'GYP_DEFINES': 'component=shared_library remove_webcore_debug_symbols=1' }
ChromeOS on Linux:
{ 'GYP_DEFINES': 'chromeos=1 component=shared_library remove_webcore_debug_symbols=1' }
Android:
{ 'GYP_DEFINES': 'OS=android' }
Recommended Parameters
For a full list of the main build variables and their defaults, see the variables section in any *.gyp or *.gypi file, e.g.:
$ cat build/common.gypi
Building a release build
To build Chrome in a release build, as well as building in the out/Release directory, you may add the following flags:
Use the icecc linker (Linux only)
Icecc is the distributed compiler with a central scheduler to share build load. Currently, many external contributors use it. e.g. Intel, Opera, Samsung.
### Variable | ### Explanation | ### Linux | ### Windows | ### Mac |
linux_use_bundled_binutils=0 | -B option is not supported. See this commit for more details. | |||
linux_use_debug_fission=0 | Debug fission is not supported. See this bug for more details. | |||
clang=0 | Icecc doesn't support clang yet. |
Build ChromeOS on Linux (Linux only)
To build ChromeOS on Linux, use the following gyp variables and the regular chrome target will run ChromeOS instead of Chrome.
### Variable | ### Explanation | ### Linux | ### Windows | ### Mac |
chromeos=1 | Build for the ChromeOS platform instead of Linux. |
Build Android (Linux only)
To build ChromeOS on Linux, use the following gyp variables and the either the chrome_shell_apk or webview_instrumentation_apk target.