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