0

Update component build documentation.

This build was recently made the default, and more documentation was added. This brings everything in sync.

Review-Url: https://codereview.chromium.org/2210813002
Cr-Commit-Position: refs/heads/master@{#409863}
This commit is contained in:
brettw
2016-08-04 12:22:17 -07:00
committed by Commit bot
parent a44d109020
commit 9fb64176b7
2 changed files with 13 additions and 6 deletions

@ -144,6 +144,9 @@ declare_args() {
# Component build. Setting to true compiles targets declared as "components"
# as shared libraries loaded dynamically. This speeds up development time.
# When false, components will be linked statically.
#
# For more information see
# https://chromium.googlesource.com/chromium/src/+/master/docs/component_build.md
is_component_build = is_debug && current_os != "ios"
}

@ -5,17 +5,21 @@
Release builds are “static” builds which compile to one executable and
zero-to-two shared libraries (depending on the platform). This is efficient at
runtime, but can take a long time to link because so much code goes into a
single binary. When you set the GN build variable
single binary.
In a component build, many smaller shared libraries will be generated. This
speeds up link times, and means that many changes only require that the local
shared library be linked rather than the full executable, but at the expense of
program load-time performance.
The component build is currently the default for debug non-iOS builds (it
doesnt work for iOS). You can force it on for release builds using the
[GN build arg](https://www.chromium.org/developers/gn-build-configuration):
```python
is_component_build = true
```
the build will generate many smaller shared libraries. This speeds up link
times, and means that many changes only require that the local shared library
be linked rather than the full executable, but at the expense of program
load-time performance.
### How to make a component
Defining a component just means using the GN “component” template instead