summaryrefslogtreecommitdiffstats
path: root/tools/gn/variables.h
diff options
context:
space:
mode:
authorbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-06 21:11:06 +0000
committerbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-06 21:11:06 +0000
commit4441041bed1422a1b0a785068b5049b29730ce47 (patch)
treec6764c4201506750d50a09e847422a8bae26d811 /tools/gn/variables.h
parentddf48eac85c977e2098139ee5dd79d5ad56828d1 (diff)
downloadchromium_src-4441041bed1422a1b0a785068b5049b29730ce47.zip
chromium_src-4441041bed1422a1b0a785068b5049b29730ce47.tar.gz
chromium_src-4441041bed1422a1b0a785068b5049b29730ce47.tar.bz2
Add support for data deps.
Data deps are non-linked dependencies of a target. They are built in parallel (they are not input dependencies). I redefined "data" to mean data file dependencies, and added a new "datadeps" contept for non-linked target dependencies. Fix a bug to make it not crash if there's nothing to generate. Add variable documentation for some vars. Removed support for some builtin vars "root output dir name" and related. These had changed definition from when I originally wrote them, and I don't think there's any use for these values. We can add them back if we need. I moved the variable name constant declarations from scope_per_file_provider to the new variables file which includes documentation. I added support for getting the name of the current toolchain via a builtin variable. I removed support for solink_module which is not necessary. This was a way to express a .dll target that isn't linked to its dependees, but that's no longer necessary for datadeps. BUG= R=scottmg@chromium.org Review URL: https://codereview.chromium.org/22290010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@215976 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools/gn/variables.h')
-rw-r--r--tools/gn/variables.h122
1 files changed, 122 insertions, 0 deletions
diff --git a/tools/gn/variables.h b/tools/gn/variables.h
new file mode 100644
index 0000000..2d46100
--- /dev/null
+++ b/tools/gn/variables.h
@@ -0,0 +1,122 @@
+// 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_