blob: 2d461000cf1fbbd491ec523ab92954318b5c1e1f [file] [log] [blame]
// Copyright (c) 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef TOOLS_GN_VARIABLES_H_
#define TOOLS_GN_VARIABLES_H_
#include <map>
#include "base/strings/string_piece.h"
namespace variables {
// Builtin vars ----------------------------------------------------------------
extern const char kCurrentToolchain[];
extern const char kCurrentToolchain_HelpShort[];
extern const char kCurrentToolchain_Help[];
extern const char kDefaultToolchain[];
extern const char kDefaultToolchain_HelpShort[];
extern const char kDefaultToolchain_Help[];
extern const char kPythonPath[];
extern const char kPythonPath_HelpShort[];
extern const char kPythonPath_Help[];
extern const char kRelativeRootGenDir[];
extern const char kRelativeRootGenDir_HelpShort[];
extern const char kRelativeRootGenDir_Help[];
extern const char kRelativeRootOutputDir[];
extern const char kRelativeRootOutputDir_HelpShort[];
extern const char kRelativeRootOutputDir_Help[];
extern const char kRelativeTargetGenDir[];
extern const char kRelativeTargetGenDir_HelpShort[];
extern const char kRelativeTargetGenDir_Help[];
extern const char kRelativeTargetOutputDir[];
extern const char kRelativeTargetOutputDir_HelpShort[];
extern const char kRelativeTargetOutputDir_Help[];
// Target vars -----------------------------------------------------------------
extern const char kAllDependentConfigs[];
extern const char kAllDependentConfigs_HelpShort[];
extern const char kAllDependentConfigs_Help[];
extern const char kCflags[];
extern const char kCflags_HelpShort[];
extern const char* kCflags_Help;
extern const char kCflagsC[];
extern const char kCflagsC_HelpShort[];
extern const char* kCflagsC_Help;
extern const char kCflagsCC[];
extern const char kCflagsCC_HelpShort[];
extern const char* kCflagsCC_Help;
extern const char kCflagsObjC[];
extern const char kCflagsObjC_HelpShort[];
extern const char* kCflagsObjC_Help;
extern const char kCflagsObjCC[];
extern const char kCflagsObjCC_HelpShort[];
extern const char* kCflagsObjCC_Help;
extern const char kConfigs[];
extern const char kConfigs_HelpShort[];
extern const char kConfigs_Help[];
extern const char kDatadeps[];
extern const char kDatadeps_HelpShort[];
extern const char kDatadeps_Help[];
extern const char kDefines[];
extern const char kDefines_HelpShort[];
extern const char kDefines_Help[];
extern const char kDeps[];
extern const char kDeps_HelpShort[];
extern const char kDeps_Help[];
extern const char kDirectDependentConfigs[];
extern const char kDirectDependentConfigs_HelpShort[];
extern const char kDirectDependentConfigs_Help[];
extern const char kLdflags[];
extern const char kLdflags_HelpShort[];
extern const char kLdflags_Help[];
extern const char kSources[];
extern const char kSources_HelpShort[];
extern const char kSources_Help[];
// -----------------------------------------------------------------------------
struct VariableInfo {
VariableInfo();
VariableInfo(const char* in_help_short,
const char* in_help);
const char* help_short;
const char* help;
};
typedef std::map<base::StringPiece, VariableInfo> VariableInfoMap;
// Returns the built-in readonly variables.
// Note: this is used only for help so this getter is not threadsafe.
const VariableInfoMap& GetBuiltinVariables();
// Returns the variables used by target generators.
// Note: this is used only for help so this getter is not threadsafe.
const VariableInfoMap& GetTargetVariables();
} // namespace variables
#endif // TOOLS_GN_VARIABLES_H_