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