| Index: tools/gn/setup.cc | 
| diff --git a/tools/gn/setup.cc b/tools/gn/setup.cc | 
| index 240c11f660a12cb9d9cd8296adbc5f08f13efd18..d98170737a0e9340cbee5446cbec26ca06771414 100644 | 
| --- a/tools/gn/setup.cc | 
| +++ b/tools/gn/setup.cc | 
| @@ -41,87 +41,83 @@ | 
| #endif | 
|  | 
| extern const char kDotfile_Help[] = | 
| -    ".gn file\n" | 
| -    "\n" | 
| -    "  When gn starts, it will search the current directory and parent\n" | 
| -    "  directories for a file called \".gn\". This indicates the source root.\n" | 
| -    "  You can override this detection by using the --root command-line\n" | 
| -    "  argument\n" | 
| -    "\n" | 
| -    "  The .gn file in the source root will be executed. The syntax is the\n" | 
| -    "  same as a buildfile, but with very limited build setup-specific\n" | 
| -    "  meaning.\n" | 
| -    "\n" | 
| -    "  If you specify --root, by default GN will look for the file .gn in\n" | 
| -    "  that directory. If you want to specify a different file, you can\n" | 
| -    "  additionally pass --dotfile:\n" | 
| -    "\n" | 
| -    "    gn gen out/Debug --root=/home/build --dotfile=/home/my_gn_file.gn\n" | 
| -    "\n" | 
| -    "Variables\n" | 
| -    "\n" | 
| -    "  buildconfig [required]\n" | 
| -    "      Label of the build config file. This file will be used to set up\n" | 
| -    "      the build file execution environment for each toolchain.\n" | 
| -    "\n" | 
| -    "  check_targets [optional]\n" | 
| -    "      A list of labels and label patterns that should be checked when\n" | 
| -    "      running \"gn check\" or \"gn gen --check\". If unspecified, all\n" | 
| -    "      targets will be checked. If it is the empty list, no targets will\n" | 
| -    "      be checked.\n" | 
| -    "\n" | 
| -    "      The format of this list is identical to that of \"visibility\"\n" | 
| -    "      so see \"gn help visibility\" for examples.\n" | 
| -    "\n" | 
| -    "  exec_script_whitelist [optional]\n" | 
| -    "      A list of .gn/.gni files (not labels) that have permission to call\n" | 
| -    "      the exec_script function. If this list is defined, calls to\n" | 
| -    "      exec_script will be checked against this list and GN will fail if\n" | 
| -    "      the current file isn't in the list.\n" | 
| -    "\n" | 
| -    "      This is to allow the use of exec_script to be restricted since\n" | 
| -    "      is easy to use inappropriately. Wildcards are not supported.\n" | 
| -    "      Files in the secondary_source tree (if defined) should be\n" | 
| -    "      referenced by ignoring the secondary tree and naming them as if\n" | 
| -    "      they are in the main tree.\n" | 
| -    "\n" | 
| -    "      If unspecified, the ability to call exec_script is unrestricted.\n" | 
| -    "\n" | 
| -    "      Example:\n" | 
| -    "        exec_script_whitelist = [\n" | 
| -    "          \"//base/BUILD.gn\",\n" | 
| -    "          \"//build/my_config.gni\",\n" | 
| -    "        ]\n" | 
| -    "\n" | 
| -    "  root [optional]\n" | 
| -    "      Label of the root build target. The GN build will start by loading\n" | 
| -    "      the build file containing this target name. This defaults to\n" | 
| -    "      \"//:\" which will cause the file //BUILD.gn to be loaded.\n" | 
| -    "\n" | 
| -    "  secondary_source [optional]\n" | 
| -    "      Label of an alternate directory tree to find input files. When\n" | 
| -    "      searching for a BUILD.gn file (or the build config file discussed\n" | 
| -    "      above), the file will first be looked for in the source root.\n" | 
| -    "      If it's not found, the secondary source root will be checked\n" | 
| -    "      (which would contain a parallel directory hierarchy).\n" | 
| -    "\n" | 
| -    "      This behavior is intended to be used when BUILD.gn files can't be\n" | 
| -    "      checked in to certain source directories for whatever reason.\n" | 
| -    "\n" | 
| -    "      The secondary source root must be inside the main source tree.\n" | 
| -    "\n" | 
| -    "Example .gn file contents\n" | 
| -    "\n" | 
| -    "  buildconfig = \"//build/config/BUILDCONFIG.gn\"\n" | 
| -    "\n" | 
| -    "  check_targets = [\n" | 
| -    "    \"//doom_melon/*\",  # Check everything in this subtree.\n" | 
| -    "    \"//tools:mind_controlling_ant\",  # Check this specific target.\n" | 
| -    "  ]\n" | 
| -    "\n" | 
| -    "  root = \"//:root\"\n" | 
| -    "\n" | 
| -    "  secondary_source = \"//build/config/temporary_buildfiles/\"\n"; | 
| +    R"(.gn file | 
| + | 
| +  When gn starts, it will search the current directory and parent directories | 
| +  for a file called ".gn". This indicates the source root. You can override | 
| +  this detection by using the --root command-line argument | 
| + | 
| +  The .gn file in the source root will be executed. The syntax is the same as a | 
| +  buildfile, but with very limited build setup-specific meaning. | 
| + | 
| +  If you specify --root, by default GN will look for the file .gn in that | 
| +  directory. If you want to specify a different file, you can additionally pass | 
| +  --dotfile: | 
| + | 
| +    gn gen out/Debug --root=/home/build --dotfile=/home/my_gn_file.gn | 
| + | 
| +Variables | 
| + | 
| +  buildconfig [required] | 
| +      Label of the build config file. This file will be used to set up the | 
| +      build file execution environment for each toolchain. | 
| + | 
| +  check_targets [optional] | 
| +      A list of labels and label patterns that should be checked when running | 
| +      "gn check" or "gn gen --check". If unspecified, all targets will be | 
| +      checked. If it is the empty list, no targets will be checked. | 
| + | 
| +      The format of this list is identical to that of "visibility" so see "gn | 
| +      help visibility" for examples. | 
| + | 
| +  exec_script_whitelist [optional] | 
| +      A list of .gn/.gni files (not labels) that have permission to call the | 
| +      exec_script function. If this list is defined, calls to exec_script will | 
| +      be checked against this list and GN will fail if the current file isn't | 
| +      in the list. | 
| + | 
| +      This is to allow the use of exec_script to be restricted since is easy to | 
| +      use inappropriately. Wildcards are not supported. Files in the | 
| +      secondary_source tree (if defined) should be referenced by ignoring the | 
| +      secondary tree and naming them as if they are in the main tree. | 
| + | 
| +      If unspecified, the ability to call exec_script is unrestricted. | 
| + | 
| +      Example: | 
| +        exec_script_whitelist = [ | 
| +          "//base/BUILD.gn", | 
| +          "//build/my_config.gni", | 
| +        ] | 
| + | 
| +  root [optional] | 
| +      Label of the root build target. The GN build will start by loading the | 
| +      build file containing this target name. This defaults to "//:" which will | 
| +      cause the file //BUILD.gn to be loaded. | 
| + | 
| +  secondary_source [optional] | 
| +      Label of an alternate directory tree to find input files. When searching | 
| +      for a BUILD.gn file (or the build config file discussed above), the file | 
| +      will first be looked for in the source root. If it's not found, the | 
| +      secondary source root will be checked (which would contain a parallel | 
| +      directory hierarchy). | 
| + | 
| +      This behavior is intended to be used when BUILD.gn files can't be checked | 
| +      in to certain source directories for whatever reason. | 
| + | 
| +      The secondary source root must be inside the main source tree. | 
| + | 
| +Example .gn file contents | 
| + | 
| +  buildconfig = "//build/config/BUILDCONFIG.gn" | 
| + | 
| +  check_targets = [ | 
| +    "//doom_melon/*",  # Check everything in this subtree. | 
| +    "//tools:mind_controlling_ant",  # Check this specific target. | 
| +  ] | 
| + | 
| +  root = "//:root" | 
| + | 
| +  secondary_source = "//build/config/temporary_buildfiles/")"; | 
|  | 
| namespace { | 
|  | 
|  |