Home | History | Annotate | Download | only in gn
      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 kCurrentToolchain[];
     17 extern const char kCurrentToolchain_HelpShort[];
     18 extern const char kCurrentToolchain_Help[];
     19 
     20 extern const char kDefaultToolchain[];
     21 extern const char kDefaultToolchain_HelpShort[];
     22 extern const char kDefaultToolchain_Help[];
     23 
     24 extern const char kPythonPath[];
     25 extern const char kPythonPath_HelpShort[];
     26 extern const char kPythonPath_Help[];
     27 
     28 extern const char kRelativeRootGenDir[];
     29 extern const char kRelativeRootGenDir_HelpShort[];
     30 extern const char kRelativeRootGenDir_Help[];
     31 
     32 extern const char kRelativeRootOutputDir[];
     33 extern const char kRelativeRootOutputDir_HelpShort[];
     34 extern const char kRelativeRootOutputDir_Help[];
     35 
     36 extern const char kRelativeTargetGenDir[];
     37 extern const char kRelativeTargetGenDir_HelpShort[];
     38 extern const char kRelativeTargetGenDir_Help[];
     39 
     40 extern const char kRelativeTargetOutputDir[];
     41 extern const char kRelativeTargetOutputDir_HelpShort[];
     42 extern const char kRelativeTargetOutputDir_Help[];
     43 
     44 // Target vars -----------------------------------------------------------------
     45 
     46 extern const char kAllDependentConfigs[];
     47 extern const char kAllDependentConfigs_HelpShort[];
     48 extern const char kAllDependentConfigs_Help[];
     49 
     50 extern const char kCflags[];
     51 extern const char kCflags_HelpShort[];
     52 extern const char* kCflags_Help;
     53 
     54 extern const char kCflagsC[];
     55 extern const char kCflagsC_HelpShort[];
     56 extern const char* kCflagsC_Help;
     57 
     58 extern const char kCflagsCC[];
     59 extern const char kCflagsCC_HelpShort[];
     60 extern const char* kCflagsCC_Help;
     61 
     62 extern const char kCflagsObjC[];
     63 extern const char kCflagsObjC_HelpShort[];
     64 extern const char* kCflagsObjC_Help;
     65 
     66 extern const char kCflagsObjCC[];
     67 extern const char kCflagsObjCC_HelpShort[];
     68 extern const char* kCflagsObjCC_Help;
     69 
     70 extern const char kConfigs[];
     71 extern const char kConfigs_HelpShort[];
     72 extern const char kConfigs_Help[];
     73 
     74 extern const char kDatadeps[];
     75 extern const char kDatadeps_HelpShort[];
     76 extern const char kDatadeps_Help[];
     77 
     78 extern const char kDefines[];
     79 extern const char kDefines_HelpShort[];
     80 extern const char kDefines_Help[];
     81 
     82 extern const char kDeps[];
     83 extern const char kDeps_HelpShort[];
     84 extern const char kDeps_Help[];
     85 
     86 extern const char kDirectDependentConfigs[];
     87 extern const char kDirectDependentConfigs_HelpShort[];
     88 extern const char kDirectDependentConfigs_Help[];
     89 
     90 extern const char kLdflags[];
     91 extern const char kLdflags_HelpShort[];
     92 extern const char kLdflags_Help[];
     93 
     94 extern const char kSources[];
     95 extern const char kSources_HelpShort[];
     96 extern const char kSources_Help[];
     97 
     98 
     99 // -----------------------------------------------------------------------------
    100 
    101 struct VariableInfo {
    102   VariableInfo();
    103   VariableInfo(const char* in_help_short,
    104                const char* in_help);
    105 
    106   const char* help_short;
    107   const char* help;
    108 };
    109 
    110 typedef std::map<base::StringPiece, VariableInfo> VariableInfoMap;
    111 
    112 // Returns the built-in readonly variables.
    113 // Note: this is used only for help so this getter is not threadsafe.
    114 const VariableInfoMap& GetBuiltinVariables();
    115 
    116 // Returns the variables used by target generators.
    117 // Note: this is used only for help so this getter is not threadsafe.
    118 const VariableInfoMap& GetTargetVariables();
    119 
    120 }  // namespace variables
    121 
    122 #endif  // TOOLS_GN_VARIABLES_H_
    123