• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
3 // found in the LICENSE file.
4 
5 #ifndef TOOLS_GN_VARIABLES_H_
6 #define TOOLS_GN_VARIABLES_H_
7 
8 #include <map>
9 
10 #include "base/strings/string_piece.h"
11 
12 namespace variables {
13 
14 // Builtin vars ----------------------------------------------------------------
15 
16 extern const char kBuildCpuArch[];
17 extern const char kBuildCpuArch_HelpShort[];
18 extern const char kBuildCpuArch_Help[];
19 
20 extern const char kBuildOs[];
21 extern const char kBuildOs_HelpShort[];
22 extern const char kBuildOs_Help[];
23 
24 extern const char kCpuArch[];
25 extern const char kCpuArch_HelpShort[];
26 extern const char kCpuArch_Help[];
27 
28 extern const char kCurrentToolchain[];
29 extern const char kCurrentToolchain_HelpShort[];
30 extern const char kCurrentToolchain_Help[];
31 
32 extern const char kDefaultToolchain[];
33 extern const char kDefaultToolchain_HelpShort[];
34 extern const char kDefaultToolchain_Help[];
35 
36 extern const char kOs[];
37 extern const char kOs_HelpShort[];
38 extern const char kOs_Help[];
39 
40 extern const char kPythonPath[];
41 extern const char kPythonPath_HelpShort[];
42 extern const char kPythonPath_Help[];
43 
44 extern const char kRootBuildDir[];
45 extern const char kRootBuildDir_HelpShort[];
46 extern const char kRootBuildDir_Help[];
47 
48 extern const char kRootGenDir[];
49 extern const char kRootGenDir_HelpShort[];
50 extern const char kRootGenDir_Help[];
51 
52 extern const char kRootOutDir[];
53 extern const char kRootOutDir_HelpShort[];
54 extern const char kRootOutDir_Help[];
55 
56 extern const char kTargetGenDir[];
57 extern const char kTargetGenDir_HelpShort[];
58 extern const char kTargetGenDir_Help[];
59 
60 extern const char kTargetOutDir[];
61 extern const char kTargetOutDir_HelpShort[];
62 extern const char kTargetOutDir_Help[];
63 
64 // Target vars -----------------------------------------------------------------
65 
66 extern const char kAllDependentConfigs[];
67 extern const char kAllDependentConfigs_HelpShort[];
68 extern const char kAllDependentConfigs_Help[];
69 
70 extern const char kAllowCircularIncludesFrom[];
71 extern const char kAllowCircularIncludesFrom_HelpShort[];
72 extern const char kAllowCircularIncludesFrom_Help[];
73 
74 extern const char kArgs[];
75 extern const char kArgs_HelpShort[];
76 extern const char kArgs_Help[];
77 
78 extern const char kCflags[];
79 extern const char kCflags_HelpShort[];
80 extern const char* kCflags_Help;
81 
82 extern const char kCflagsC[];
83 extern const char kCflagsC_HelpShort[];
84 extern const char* kCflagsC_Help;
85 
86 extern const char kCflagsCC[];
87 extern const char kCflagsCC_HelpShort[];
88 extern const char* kCflagsCC_Help;
89 
90 extern const char kCflagsObjC[];
91 extern const char kCflagsObjC_HelpShort[];
92 extern const char* kCflagsObjC_Help;
93 
94 extern const char kCflagsObjCC[];
95 extern const char kCflagsObjCC_HelpShort[];
96 extern const char* kCflagsObjCC_Help;
97 
98 extern const char kCheckIncludes[];
99 extern const char kCheckIncludes_HelpShort[];
100 extern const char kCheckIncludes_Help[];
101 
102 extern const char kCompleteStaticLib[];
103 extern const char kCompleteStaticLib_HelpShort[];
104 extern const char kCompleteStaticLib_Help[];
105 
106 extern const char kConfigs[];
107 extern const char kConfigs_HelpShort[];
108 extern const char kConfigs_Help[];
109 
110 extern const char kData[];
111 extern const char kData_HelpShort[];
112 extern const char kData_Help[];
113 
114 extern const char kDataDeps[];
115 extern const char kDataDeps_HelpShort[];
116 extern const char kDataDeps_Help[];
117 
118 extern const char kDefines[];
119 extern const char kDefines_HelpShort[];
120 extern const char kDefines_Help[];
121 
122 extern const char kDepfile[];
123 extern const char kDepfile_HelpShort[];
124 extern const char kDepfile_Help[];
125 
126 extern const char kDeps[];
127 extern const char kDeps_HelpShort[];
128 extern const char kDeps_Help[];
129 
130 extern const char kForwardDependentConfigsFrom[];
131 extern const char kForwardDependentConfigsFrom_HelpShort[];
132 extern const char kForwardDependentConfigsFrom_Help[];
133 
134 extern const char kIncludeDirs[];
135 extern const char kIncludeDirs_HelpShort[];
136 extern const char kIncludeDirs_Help[];
137 
138 extern const char kInputs[];
139 extern const char kInputs_HelpShort[];
140 extern const char kInputs_Help[];
141 
142 extern const char kLdflags[];
143 extern const char kLdflags_HelpShort[];
144 extern const char kLdflags_Help[];
145 
146 extern const char kLibDirs[];
147 extern const char kLibDirs_HelpShort[];
148 extern const char kLibDirs_Help[];
149 
150 extern const char kLibs[];
151 extern const char kLibs_HelpShort[];
152 extern const char kLibs_Help[];
153 
154 extern const char kOutputExtension[];
155 extern const char kOutputExtension_HelpShort[];
156 extern const char kOutputExtension_Help[];
157 
158 extern const char kOutputName[];
159 extern const char kOutputName_HelpShort[];
160 extern const char kOutputName_Help[];
161 
162 extern const char kOutputs[];
163 extern const char kOutputs_HelpShort[];
164 extern const char kOutputs_Help[];
165 
166 extern const char kPublic[];
167 extern const char kPublic_HelpShort[];
168 extern const char kPublic_Help[];
169 
170 extern const char kPublicConfigs[];
171 extern const char kPublicConfigs_HelpShort[];
172 extern const char kPublicConfigs_Help[];
173 
174 extern const char kPublicDeps[];
175 extern const char kPublicDeps_HelpShort[];
176 extern const char kPublicDeps_Help[];
177 
178 extern const char kScript[];
179 extern const char kScript_HelpShort[];
180 extern const char kScript_Help[];
181 
182 extern const char kSources[];
183 extern const char kSources_HelpShort[];
184 extern const char kSources_Help[];
185 
186 extern const char kTestonly[];
187 extern const char kTestonly_HelpShort[];
188 extern const char kTestonly_Help[];
189 
190 extern const char kVisibility[];
191 extern const char kVisibility_HelpShort[];
192 extern const char kVisibility_Help[];
193 
194 // -----------------------------------------------------------------------------
195 
196 struct VariableInfo {
197   VariableInfo();
198   VariableInfo(const char* in_help_short,
199                const char* in_help);
200 
201   const char* help_short;
202   const char* help;
203 };
204 
205 typedef std::map<base::StringPiece, VariableInfo> VariableInfoMap;
206 
207 // Returns the built-in readonly variables.
208 // Note: this is used only for help so this getter is not threadsafe.
209 const VariableInfoMap& GetBuiltinVariables();
210 
211 // Returns the variables used by target generators.
212 // Note: this is used only for help so this getter is not threadsafe.
213 const VariableInfoMap& GetTargetVariables();
214 
215 }  // namespace variables
216 
217 #endif  // TOOLS_GN_VARIABLES_H_
218