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 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