Chromium Code Reviews| Index: tools/gn/docs/style_guide.md |
| diff --git a/tools/gn/docs/style_guide.md b/tools/gn/docs/style_guide.md |
| index af4e902d92efadab0edfb96df24c16d67421c6e9..40c5286a90febc843eb938544346e266694824a9 100644 |
| --- a/tools/gn/docs/style_guide.md |
| +++ b/tools/gn/docs/style_guide.md |
| @@ -18,28 +18,28 @@ changes are more focused. |
| more important targets will be first, and unit tests will follow the |
| corresponding target. If there's no clear ordering, consider |
| alphabetical order. |
| - * Targets and configs should be named using lowercase with underscores |
| - separating words, unless there is a strong reason to do otherwise. |
| * Test support libraries should be source sets named "test\_support". |
| So "//ui/compositor:test\_support". Test support libraries should |
| include as public deps the non-test-support version of the library |
| so tests need only depend on the test\_support target (rather than |
| both). |
| -Output names (the part after the colon in a label) of executables and |
| -shared libraries must be globally unique since they all go in the root |
| -directory. Prefer to do this by giving a target a short (possibly |
| -non-unique) name that makes writing dependencies clearer, and setting |
| -the `output_name` variable to something unique. |
| - |
| -For example, it looks much better to write a dependency as |
| -`"//mojo/public/bindings"` rather than |
| -`"//mojo/public/bindings:mojo_bindings"`. So in the file |
| -`//mojo/public/bindings/BUILD.gn`: ``` shared_library("bindings") { # |
| -Very non-unique name "bindings" makes the most sense in this context. |
| -output_name = "mojo_bindings" # Give target a unique output name to |
| -avoid collisions. ... } ``` This will produce a file |
| -`mojo_bindings.so` in the root build directory. |
| +Naming advice |
|
Dirk Pranke
2015/07/07 18:56:48
nit: did you mean for this to be a subheading, or
|
| + |
| + * Targets and configs should be named using lowercase with underscores |
| + separating words, unless there is a strong reason to do otherwise. |
| + * Source sets, groups, and static libraries do not need globally unique names. |
| + Prefer to give such targets short, non-redundant names without worrying |
| + about global uniqueness. For example, it looks much better to write a |
| + dependency as `"//mojo/public/bindings"` rather than |
| + `"//mojo/public/bindings:mojo_bindings" |
| + * Shared libraries (and by extension, components) must have globally unique |
| + output names. Give such targets short non-unique names above, and then |
| + provide a globally unique `output_name` for that target. |
| + * Executables and tests should be given a globally unique name. Technically |
| + only the output names must be unique, but since only the output names |
| + appear in the shell and on bots, it's much less confusing if the name |
| + matches the other places the executable appears. |
| ### Configs |