OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef TOOLS_GN_TOOLCHAIN_H_ | 5 #ifndef TOOLS_GN_TOOLCHAIN_H_ |
6 #define TOOLS_GN_TOOLCHAIN_H_ | 6 #define TOOLS_GN_TOOLCHAIN_H_ |
7 | 7 |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/strings/string_piece.h" | 10 #include "base/strings/string_piece.h" |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
92 // pass in other settings. | 92 // pass in other settings. |
93 Scope::KeyValueMap& args() { return args_; } | 93 Scope::KeyValueMap& args() { return args_; } |
94 const Scope::KeyValueMap& args() const { return args_; } | 94 const Scope::KeyValueMap& args() const { return args_; } |
95 | 95 |
96 // Returns the tool for compiling the given source file type. | 96 // Returns the tool for compiling the given source file type. |
97 static ToolType GetToolTypeForSourceType(SourceFileType type); | 97 static ToolType GetToolTypeForSourceType(SourceFileType type); |
98 const Tool* GetToolForSourceType(SourceFileType type); | 98 const Tool* GetToolForSourceType(SourceFileType type); |
99 | 99 |
100 // Returns the tool that produces the final output for the given target type. | 100 // Returns the tool that produces the final output for the given target type. |
101 // This isn't necessarily the tool you would expect. For copy target, this | 101 // This isn't necessarily the tool you would expect. For copy target, this |
102 // will return the stamp tool ionstead since the final output of a copy | 102 // will return the stamp tool instead since the final output of a copy |
103 // target is to stamp the set of copies done so there is one output. | 103 // target is to stamp the set of copies done so there is one output. |
104 static ToolType GetToolTypeForTargetFinalOutput(const Target* target); | 104 static ToolType GetToolTypeForTargetFinalOutput(const Target* target); |
105 const Tool* GetToolForTargetFinalOutput(const Target* target) const; | 105 const Tool* GetToolForTargetFinalOutput(const Target* target) const; |
106 | 106 |
107 const SubstitutionBits& substitution_bits() const { | 107 const SubstitutionBits& substitution_bits() const { |
108 DCHECK(setup_complete_); | 108 DCHECK(setup_complete_); |
109 return substitution_bits_; | 109 return substitution_bits_; |
110 } | 110 } |
111 | 111 |
112 void set_concurrent_links(int cl) { concurrent_links_ = cl; } | 112 void set_concurrent_links(int cl) { concurrent_links_ = cl; } |
113 int concurrent_links() const { return concurrent_links_; } | 113 int concurrent_links() const { return concurrent_links_; } |
114 | 114 |
115 private: | 115 private: |
116 scoped_ptr<Tool> tools_[TYPE_NUMTYPES]; | 116 scoped_ptr<Tool> tools_[TYPE_NUMTYPES]; |
117 | 117 |
118 // How many links to run in parallel. Only the default toolchain's version of | 118 // How many links to run in parallel. Only the default toolchain's version of |
119 // this variable applies. | 119 // this variable applies. |
120 int concurrent_links_; | 120 int concurrent_links_; |
121 | 121 |
122 bool setup_complete_; | 122 bool setup_complete_; |
123 | 123 |
124 // Substitutions used by the tools in this toolchain. | 124 // Substitutions used by the tools in this toolchain. |
125 SubstitutionBits substitution_bits_; | 125 SubstitutionBits substitution_bits_; |
126 | 126 |
127 LabelTargetVector deps_; | 127 LabelTargetVector deps_; |
128 Scope::KeyValueMap args_; | 128 Scope::KeyValueMap args_; |
129 }; | 129 }; |
130 | 130 |
131 #endif // TOOLS_GN_TOOLCHAIN_H_ | 131 #endif // TOOLS_GN_TOOLCHAIN_H_ |
OLD | NEW |