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

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

Issue 565283002: GN: Add notion of 'complete' static libraries, akin to GYP. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Actually process new argument. Duh. Created 6 years, 3 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
« no previous file with comments | « tools/gn/ninja_binary_target_writer_unittest.cc ('k') | tools/gn/target.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_TARGET_H_ 5 #ifndef TOOLS_GN_TARGET_H_
6 #define TOOLS_GN_TARGET_H_ 6 #define TOOLS_GN_TARGET_H_
7 7
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 static const char* GetStringForOutputType(OutputType type); 51 static const char* GetStringForOutputType(OutputType type);
52 52
53 // Item overrides. 53 // Item overrides.
54 virtual Target* AsTarget() OVERRIDE; 54 virtual Target* AsTarget() OVERRIDE;
55 virtual const Target* AsTarget() const OVERRIDE; 55 virtual const Target* AsTarget() const OVERRIDE;
56 virtual bool OnResolved(Err* err) OVERRIDE; 56 virtual bool OnResolved(Err* err) OVERRIDE;
57 57
58 OutputType output_type() const { return output_type_; } 58 OutputType output_type() const { return output_type_; }
59 void set_output_type(OutputType t) { output_type_ = t; } 59 void set_output_type(OutputType t) { output_type_ = t; }
60 60
61 // Can be linked into other targets.
61 bool IsLinkable() const; 62 bool IsLinkable() const;
62 63
64 // Can have dependencies linked in.
65 bool IsFinal() const;
66
63 // Will be the empty string to use the target label as the output name. 67 // Will be the empty string to use the target label as the output name.
64 // See GetComputedOutputName(). 68 // See GetComputedOutputName().
65 const std::string& output_name() const { return output_name_; } 69 const std::string& output_name() const { return output_name_; }
66 void set_output_name(const std::string& name) { output_name_ = name; } 70 void set_output_name(const std::string& name) { output_name_ = name; }
67 71
68 // Returns the output name for this target, which is the output_name if 72 // Returns the output name for this target, which is the output_name if
69 // specified, or the target label if not. If the flag is set, it will also 73 // specified, or the target label if not. If the flag is set, it will also
70 // include any output prefix specified on the tool (often "lib" on Linux). 74 // include any output prefix specified on the tool (often "lib" on Linux).
71 // 75 //
72 // Because this depends on the tool for this target, the toolchain must 76 // Because this depends on the tool for this target, the toolchain must
(...skipping 15 matching lines...) Expand all
88 92
89 // When all_headers_public is false, this is the list of public headers. It 93 // When all_headers_public is false, this is the list of public headers. It
90 // could be empty which would mean no headers are public. 94 // could be empty which would mean no headers are public.
91 const FileList& public_headers() const { return public_headers_; } 95 const FileList& public_headers() const { return public_headers_; }
92 FileList& public_headers() { return public_headers_; } 96 FileList& public_headers() { return public_headers_; }
93 97
94 // Whether this target's includes should be checked by "gn check". 98 // Whether this target's includes should be checked by "gn check".
95 bool check_includes() const { return check_includes_; } 99 bool check_includes() const { return check_includes_; }
96 void set_check_includes(bool ci) { check_includes_ = ci; } 100 void set_check_includes(bool ci) { check_includes_ = ci; }
97 101
102 // Whether this static_library target should have code linked in.
103 bool complete_static_lib() const { return complete_static_lib_; }
104 void set_complete_static_lib(bool complete) {
105 DCHECK_EQ(STATIC_LIBRARY, output_type_);
106 complete_static_lib_ = complete;
107 }
108
98 bool testonly() const { return testonly_; } 109 bool testonly() const { return testonly_; }
99 void set_testonly(bool value) { testonly_ = value; } 110 void set_testonly(bool value) { testonly_ = value; }
100 111
101 // Compile-time extra dependencies. 112 // Compile-time extra dependencies.
102 const FileList& inputs() const { return inputs_; } 113 const FileList& inputs() const { return inputs_; }
103 FileList& inputs() { return inputs_; } 114 FileList& inputs() { return inputs_; }
104 115
105 // Runtime dependencies. 116 // Runtime dependencies.
106 const FileList& data() const { return data_; } 117 const FileList& data() const { return data_; }
107 FileList& data() { return data_; } 118 FileList& data() { return data_; }
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 bool CheckTestonly(Err* err) const; 243 bool CheckTestonly(Err* err) const;
233 244
234 OutputType output_type_; 245 OutputType output_type_;
235 std::string output_name_; 246 std::string output_name_;
236 std::string output_extension_; 247 std::string output_extension_;
237 248
238 FileList sources_; 249 FileList sources_;
239 bool all_headers_public_; 250 bool all_headers_public_;
240 FileList public_headers_; 251 FileList public_headers_;
241 bool check_includes_; 252 bool check_includes_;
253 bool complete_static_lib_;
242 bool testonly_; 254 bool testonly_;
243 FileList inputs_; 255 FileList inputs_;
244 FileList data_; 256 FileList data_;
245 257
246 bool hard_dep_; 258 bool hard_dep_;
247 259
248 // Note that if there are any groups in the deps, once the target is resolved 260 // Note that if there are any groups in the deps, once the target is resolved
249 // these vectors will list *both* the groups as well as the groups' deps. 261 // these vectors will list *both* the groups as well as the groups' deps.
250 // 262 //
251 // This is because, in general, groups should be "transparent" ways to add 263 // This is because, in general, groups should be "transparent" ways to add
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 }; 319 };
308 #elif defined(COMPILER_MSVC) 320 #elif defined(COMPILER_MSVC)
309 inline size_t hash_value(const Target* t) { 321 inline size_t hash_value(const Target* t) {
310 return reinterpret_cast<size_t>(t); 322 return reinterpret_cast<size_t>(t);
311 } 323 }
312 #endif // COMPILER... 324 #endif // COMPILER...
313 325
314 } // namespace BASE_HASH_NAMESPACE 326 } // namespace BASE_HASH_NAMESPACE
315 327
316 #endif // TOOLS_GN_TARGET_H_ 328 #endif // TOOLS_GN_TARGET_H_
OLDNEW
« no previous file with comments | « tools/gn/ninja_binary_target_writer_unittest.cc ('k') | tools/gn/target.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698