| OLD | NEW | 
|    1 # GN Style Guide  |    1 # GN Style Guide  | 
|    2  |    2  | 
|    3 [TOC] |    3 [TOC] | 
|    4 ## Naming and ordering within the file |    4 ## Naming and ordering within the file | 
|    5  |    5  | 
|    6 ### Location of build files |    6 ### Location of build files | 
|    7  |    7  | 
|    8 It usually makes sense to have more build files closer to the code than |    8 It usually makes sense to have more build files closer to the code than | 
|    9 fewer ones at the toplevel (this is in contrast with what we did with |    9 fewer ones at the toplevel (this is in contrast with what we did with | 
|   10 GYP). This makes things easier to find and owners reviews easier since |   10 GYP). This makes things easier to find and owners reviews easier since | 
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  176     means the tests will get stripped. |  176     means the tests will get stripped. | 
|  177  |  177  | 
|  178   * Static libraries involve duplicating all of the data in the object files |  178   * Static libraries involve duplicating all of the data in the object files | 
|  179     that comprise it. This takes more disk space and for certain very large |  179     that comprise it. This takes more disk space and for certain very large | 
|  180     libraries in configurations with very large object files can cause |  180     libraries in configurations with very large object files can cause | 
|  181     internal limits on the size of static libraries to be exceeded. Source |  181     internal limits on the size of static libraries to be exceeded. Source | 
|  182     sets do not have this limitation. Some targets switch between source sets |  182     sets do not have this limitation. Some targets switch between source sets | 
|  183     and static libraries depending on the build configuration to avoid this |  183     and static libraries depending on the build configuration to avoid this | 
|  184     problem. |  184     problem. | 
|  185  |  185  | 
 |  186   * Source sets can have no sources, while static libraries will give strange | 
 |  187     platform-specific errors if they have no sources. If a target has only | 
 |  188     headers (for include checking purposes) or conditionally has no sources on | 
 |  189     sone platforms, use a source set. | 
 |  190  | 
|  186   * In cases where a lot of the symbols are not needed for a particular link |  191   * In cases where a lot of the symbols are not needed for a particular link | 
|  187     (this especially happens when linking test binaries), putting that code in |  192     (this especially happens when linking test binaries), putting that code in | 
|  188     a static library can dramatically increase linking performance. This is |  193     a static library can dramatically increase linking performance. This is | 
|  189     because the object files not needed for the link are never considered in |  194     because the object files not needed for the link are never considered in | 
|  190     the first place, rather than forcing the linker to strip the unused code |  195     the first place, rather than forcing the linker to strip the unused code | 
|  191     in a later pass when nothing references it. |  196     in a later pass when nothing references it. | 
|  192  |  197  | 
|  193 ### Loadable modules versus shared libraries versus components |  198 ### Loadable modules versus shared libraries versus components | 
|  194  |  199  | 
|  195 A component is a Chrome primitive (rather than a built-in GN concept) that |  200 A component is a Chrome primitive (rather than a built-in GN concept) that | 
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  270 `enable_google_now`, `enable_nacl`, `enable_remoting`, `enable_pdf`) |  275 `enable_google_now`, `enable_nacl`, `enable_remoting`, `enable_pdf`) | 
|  271  |  276  | 
|  272 `disable_foo` - _NOT_ recommended, use `enable_foo` instead with swapped default |  277 `disable_foo` - _NOT_ recommended, use `enable_foo` instead with swapped default | 
|  273 value |  278 value | 
|  274  |  279  | 
|  275 `is_foo` - usually a global state descriptor (e.g. `is_chrome_branded`, |  280 `is_foo` - usually a global state descriptor (e.g. `is_chrome_branded`, | 
|  276 `is_desktop_linux`); poor choice for non-globals |  281 `is_desktop_linux`); poor choice for non-globals | 
|  277  |  282  | 
|  278 `foo_use_bar` - prefixes can be used to indicate a limited scope for an argument |  283 `foo_use_bar` - prefixes can be used to indicate a limited scope for an argument | 
|  279 (e.g. `rtc_use_h264`, `v8_use_snapshot`) |  284 (e.g. `rtc_use_h264`, `v8_use_snapshot`) | 
| OLD | NEW |