Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: tools/gn/tool.h

Issue 2006923004: Add support for user defined "pool" to GN. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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_TOOL_H_ 5 #ifndef TOOLS_GN_TOOL_H_
6 #define TOOLS_GN_TOOL_H_ 6 #define TOOLS_GN_TOOL_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "base/macros.h" 11 #include "base/macros.h"
12 #include "tools/gn/label.h"
13 #include "tools/gn/label_ptr.h"
12 #include "tools/gn/substitution_list.h" 14 #include "tools/gn/substitution_list.h"
13 #include "tools/gn/substitution_pattern.h" 15 #include "tools/gn/substitution_pattern.h"
14 16
17 class Pool;
18
15 class Tool { 19 class Tool {
16 public: 20 public:
17 enum DepsFormat { 21 enum DepsFormat {
18 DEPS_GCC = 0, 22 DEPS_GCC = 0,
19 DEPS_MSVC = 1 23 DEPS_MSVC = 1
20 }; 24 };
21 25
22 enum PrecompiledHeaderType { 26 enum PrecompiledHeaderType {
23 PCH_NONE = 0, 27 PCH_NONE = 0,
24 PCH_GCC = 1, 28 PCH_GCC = 1,
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 } 170 }
167 171
168 const SubstitutionPattern& rspfile_content() const { 172 const SubstitutionPattern& rspfile_content() const {
169 return rspfile_content_; 173 return rspfile_content_;
170 } 174 }
171 void set_rspfile_content(const SubstitutionPattern& content) { 175 void set_rspfile_content(const SubstitutionPattern& content) {
172 DCHECK(!complete_); 176 DCHECK(!complete_);
173 rspfile_content_ = content; 177 rspfile_content_ = content;
174 } 178 }
175 179
180 const LabelPtrPair<Pool>& pool() const { return pool_; }
181 void set_pool(const LabelPtrPair<Pool>& pool) { pool_ = pool; }
182
176 // Other functions ---------------------------------------------------------- 183 // Other functions ----------------------------------------------------------
177 184
178 // Called when the toolchain is saving this tool, after everything is filled 185 // Called when the toolchain is saving this tool, after everything is filled
179 // in. 186 // in.
180 void SetComplete(); 187 void SetComplete();
181 188
182 // Returns true if this tool has separate outputs for dependency tracking 189 // Returns true if this tool has separate outputs for dependency tracking
183 // and linking. 190 // and linking.
184 bool has_separate_solink_files() const { 191 bool has_separate_solink_files() const {
185 return !link_output_.empty() || !depend_output_.empty(); 192 return !link_output_.empty() || !depend_output_.empty();
186 } 193 }
187 194
188 // Substitutions required by this tool. 195 // Substitutions required by this tool.
189 const SubstitutionBits& substitution_bits() const { 196 const SubstitutionBits& substitution_bits() const {
190 DCHECK(complete_); 197 DCHECK(complete_);
191 return substitution_bits_; 198 return substitution_bits_;
192 } 199 }
193 200
201 bool OnResolved(Err* err);
202
194 private: 203 private:
195 SubstitutionPattern command_; 204 SubstitutionPattern command_;
196 std::string default_output_extension_; 205 std::string default_output_extension_;
197 SubstitutionPattern default_output_dir_; 206 SubstitutionPattern default_output_dir_;
198 SubstitutionPattern depfile_; 207 SubstitutionPattern depfile_;
199 DepsFormat depsformat_; 208 DepsFormat depsformat_;
200 PrecompiledHeaderType precompiled_header_type_; 209 PrecompiledHeaderType precompiled_header_type_;
201 SubstitutionPattern description_; 210 SubstitutionPattern description_;
202 std::string lib_switch_; 211 std::string lib_switch_;
203 std::string lib_dir_switch_; 212 std::string lib_dir_switch_;
204 SubstitutionList outputs_; 213 SubstitutionList outputs_;
205 SubstitutionPattern link_output_; 214 SubstitutionPattern link_output_;
206 SubstitutionPattern depend_output_; 215 SubstitutionPattern depend_output_;
207 SubstitutionPattern runtime_link_output_; 216 SubstitutionPattern runtime_link_output_;
208 std::string output_prefix_; 217 std::string output_prefix_;
209 bool restat_; 218 bool restat_;
210 SubstitutionPattern rspfile_; 219 SubstitutionPattern rspfile_;
211 SubstitutionPattern rspfile_content_; 220 SubstitutionPattern rspfile_content_;
221 LabelPtrPair<Pool> pool_;
212 222
213 bool complete_; 223 bool complete_;
214 224
215 SubstitutionBits substitution_bits_; 225 SubstitutionBits substitution_bits_;
216 226
217 DISALLOW_COPY_AND_ASSIGN(Tool); 227 DISALLOW_COPY_AND_ASSIGN(Tool);
218 }; 228 };
219 229
220 #endif // TOOLS_GN_TOOL_H_ 230 #endif // TOOLS_GN_TOOL_H_
OLDNEW
« tools/gn/functions.cc ('K') | « tools/gn/pool.cc ('k') | tools/gn/toolchain.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698