Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(229)

Side by Side Diff: tools/gn/variables.cc

Issue 2149213002: Document GN invoker and target name variables. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: reference Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/gn/variables.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "tools/gn/variables.h" 5 #include "tools/gn/variables.h"
6 6
7 namespace variables { 7 namespace variables {
8 8
9 // Built-in variables ---------------------------------------------------------- 9 // Built-in variables ----------------------------------------------------------
10 10
(...skipping 26 matching lines...) Expand all
37 " build system's settings.\n" 37 " build system's settings.\n"
38 "\n" 38 "\n"
39 " This value should generally be treated as read-only. It, however,\n" 39 " This value should generally be treated as read-only. It, however,\n"
40 " is not used internally by GN for any purpose.\n" 40 " is not used internally by GN for any purpose.\n"
41 "\n" 41 "\n"
42 "Some possible values:\n" 42 "Some possible values:\n"
43 " - \"linux\"\n" 43 " - \"linux\"\n"
44 " - \"mac\"\n" 44 " - \"mac\"\n"
45 " - \"win\"\n"; 45 " - \"win\"\n";
46 46
47 const char kInvoker[] = "invoker";
48 const char kInvoker_HelpShort[] =
49 "invoker: [string] The invoking scope inside a template.";
50 const char kInvoker_Help[] =
51 "invoker: [string] The invoking scope inside a template.\n"
52 "\n"
53 " Inside a template invocation, this variable refers to the scope of\n"
54 " the invoker of the template. Outside of template invocations, this\n"
55 " variable is undefined.\n"
56 "\n"
57 " All of the variables defined inside the template invocation are\n"
58 " accessible as members of the \"invoker\" scope. This is the way that\n"
59 " templates read values set by the callers.\n"
60 "\n"
61 " This is often used with \"defined\" to see if a value is set on the\n"
62 " invoking scope.\n"
63 "\n"
64 " See \"gn help template\" for more examples.\n"
65 "\n"
66 "Example\n"
67 "\n"
68 " template(\"my_template\") {\n"
69 " print(invoker.sources) # Prints [ \"a.cc\", \"b.cc\" ]\n"
70 " print(defined(invoker.foo)) # Prints false.\n"
71 " print(defined(invoker.bar)) # Prints true.\n"
72 " }\n"
73 "\n"
74 " my_template(\"doom_melon\") {\n"
75 " sources = [ \"a.cc\", \"b.cc\" ]\n"
76 " bar = 123\n"
77 " }\n";
78
47 const char kTargetCpu[] = "target_cpu"; 79 const char kTargetCpu[] = "target_cpu";
48 const char kTargetCpu_HelpShort[] = 80 const char kTargetCpu_HelpShort[] =
49 "target_cpu: [string] The desired cpu architecture for the build."; 81 "target_cpu: [string] The desired cpu architecture for the build.";
50 const char kTargetCpu_Help[] = 82 const char kTargetCpu_Help[] =
51 "target_cpu: The desired cpu architecture for the build.\n" 83 "target_cpu: The desired cpu architecture for the build.\n"
52 "\n" 84 "\n"
53 " This value should be used to indicate the desired architecture for\n" 85 " This value should be used to indicate the desired architecture for\n"
54 " the primary objects of the build. It will match the cpu architecture\n" 86 " the primary objects of the build. It will match the cpu architecture\n"
55 " of the default toolchain, but not necessarily the current toolchain.\n" 87 " of the default toolchain, but not necessarily the current toolchain.\n"
56 "\n" 88 "\n"
(...skipping 12 matching lines...) Expand all
69 "\n" 101 "\n"
70 " Where practical, use one of the following list of common values:\n" 102 " Where practical, use one of the following list of common values:\n"
71 "\n" 103 "\n"
72 "Possible values:\n" 104 "Possible values:\n"
73 " - \"x86\"\n" 105 " - \"x86\"\n"
74 " - \"x64\"\n" 106 " - \"x64\"\n"
75 " - \"arm\"\n" 107 " - \"arm\"\n"
76 " - \"arm64\"\n" 108 " - \"arm64\"\n"
77 " - \"mipsel\"\n"; 109 " - \"mipsel\"\n";
78 110
111 const char kTargetName[] = "target_name";
112 const char kTargetName_HelpShort[] =
113 "target_name: [string] The name of the current target.";
114 const char kTargetName_Help[] =
115 "target_name: [string] The name of the current target.\n"
116 "\n"
117 " Inside a target or template invocation, this variable refers to the\n"
118 " name given to the target or template invocation. Outside of these,\n"
119 " this variable is undefined.\n"
120 "\n"
121 " This is most often used in template definitions to name targets\n"
122 " defined in the template based on the name of the invocation. This\n"
123 " is necessary both to ensure generated targets have unique names and\n"
124 " to generate a target with the exact name of the invocation that\n"
125 " other targets can depend on.\n"
126 "\n"
127 " Be aware that this value will always reflect the innermost scope. So\n"
128 " when defining a target inside a template, target_name will refer to\n"
129 " the target rather than the template invocation. To get the name of the\n"
130 " template invocation in this case, you should save target_name to a\n"
131 " temporary variable outside of any target definitions.\n"
132 "\n"
133 " See \"gn help template\" for more examples.\n"
134 "\n"
135 "Example\n"
136 "\n"
137 " executable(\"doom_melon\") {\n"
138 " print(target_name) # Prints \"doom_melon\".\n"
139 " }\n"
140 "\n"
141 " template(\"my_template\") {\n"
142 " print(target_name) # Prints \"space_ray\" when invoked below.\n"
143 "\n"
144 " executable(target_name + \"_impl\") {\n"
145 " print(target_name) # Prints \"space_ray_impl\".\n"
146 " }\n"
147 " }\n"
148 "\n"
149 " my_template(\"space_ray\") {\n"
150 " }\n";
151
79 const char kTargetOs[] = "target_os"; 152 const char kTargetOs[] = "target_os";
80 const char kTargetOs_HelpShort[] = 153 const char kTargetOs_HelpShort[] =
81 "target_os: [string] The desired operating system for the build."; 154 "target_os: [string] The desired operating system for the build.";
82 const char kTargetOs_Help[] = 155 const char kTargetOs_Help[] =
83 "target_os: The desired operating system for the build.\n" 156 "target_os: The desired operating system for the build.\n"
84 "\n" 157 "\n"
85 " This value should be used to indicate the desired operating system\n" 158 " This value should be used to indicate the desired operating system\n"
86 " for the primary object(s) of the build. It will match the OS of\n" 159 " for the primary object(s) of the build. It will match the OS of\n"
87 " the default toolchain.\n" 160 " the default toolchain.\n"
88 "\n" 161 "\n"
(...skipping 1617 matching lines...) Expand 10 before | Expand all | Expand 10 after
1706 1779
1707 const VariableInfoMap& GetBuiltinVariables() { 1780 const VariableInfoMap& GetBuiltinVariables() {
1708 static VariableInfoMap info_map; 1781 static VariableInfoMap info_map;
1709 if (info_map.empty()) { 1782 if (info_map.empty()) {
1710 INSERT_VARIABLE(CurrentCpu) 1783 INSERT_VARIABLE(CurrentCpu)
1711 INSERT_VARIABLE(CurrentOs) 1784 INSERT_VARIABLE(CurrentOs)
1712 INSERT_VARIABLE(CurrentToolchain) 1785 INSERT_VARIABLE(CurrentToolchain)
1713 INSERT_VARIABLE(DefaultToolchain) 1786 INSERT_VARIABLE(DefaultToolchain)
1714 INSERT_VARIABLE(HostCpu) 1787 INSERT_VARIABLE(HostCpu)
1715 INSERT_VARIABLE(HostOs) 1788 INSERT_VARIABLE(HostOs)
1789 INSERT_VARIABLE(Invoker)
1716 INSERT_VARIABLE(PythonPath) 1790 INSERT_VARIABLE(PythonPath)
1717 INSERT_VARIABLE(RootBuildDir) 1791 INSERT_VARIABLE(RootBuildDir)
1718 INSERT_VARIABLE(RootGenDir) 1792 INSERT_VARIABLE(RootGenDir)
1719 INSERT_VARIABLE(RootOutDir) 1793 INSERT_VARIABLE(RootOutDir)
1720 INSERT_VARIABLE(TargetCpu) 1794 INSERT_VARIABLE(TargetCpu)
1721 INSERT_VARIABLE(TargetOs) 1795 INSERT_VARIABLE(TargetOs)
1722 INSERT_VARIABLE(TargetGenDir) 1796 INSERT_VARIABLE(TargetGenDir)
1797 INSERT_VARIABLE(TargetName)
1723 INSERT_VARIABLE(TargetOutDir) 1798 INSERT_VARIABLE(TargetOutDir)
1724 } 1799 }
1725 return info_map; 1800 return info_map;
1726 } 1801 }
1727 1802
1728 const VariableInfoMap& GetTargetVariables() { 1803 const VariableInfoMap& GetTargetVariables() {
1729 static VariableInfoMap info_map; 1804 static VariableInfoMap info_map;
1730 if (info_map.empty()) { 1805 if (info_map.empty()) {
1731 INSERT_VARIABLE(AllDependentConfigs) 1806 INSERT_VARIABLE(AllDependentConfigs)
1732 INSERT_VARIABLE(AllowCircularIncludesFrom) 1807 INSERT_VARIABLE(AllowCircularIncludesFrom)
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1778 INSERT_VARIABLE(Testonly) 1853 INSERT_VARIABLE(Testonly)
1779 INSERT_VARIABLE(Visibility) 1854 INSERT_VARIABLE(Visibility)
1780 INSERT_VARIABLE(WriteRuntimeDeps) 1855 INSERT_VARIABLE(WriteRuntimeDeps)
1781 } 1856 }
1782 return info_map; 1857 return info_map;
1783 } 1858 }
1784 1859
1785 #undef INSERT_VARIABLE 1860 #undef INSERT_VARIABLE
1786 1861
1787 } // namespace variables 1862 } // namespace variables
OLDNEW
« no previous file with comments | « tools/gn/variables.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698