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

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

Issue 572893002: GN: Refine 'complete' static library handling (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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.cc ('k') | no next file » | 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 #include "tools/gn/target.h" 5 #include "tools/gn/target.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/strings/string_util.h" 8 #include "base/strings/string_util.h"
9 #include "base/strings/stringprintf.h" 9 #include "base/strings/stringprintf.h"
10 #include "tools/gn/config_values_extractors.h" 10 #include "tools/gn/config_values_extractors.h"
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 if (dep->output_type() == STATIC_LIBRARY || 237 if (dep->output_type() == STATIC_LIBRARY ||
238 dep->output_type() == SHARED_LIBRARY || 238 dep->output_type() == SHARED_LIBRARY ||
239 dep->output_type() == SOURCE_SET) 239 dep->output_type() == SOURCE_SET)
240 inherited_libraries_.push_back(dep); 240 inherited_libraries_.push_back(dep);
241 241
242 // Inherited libraries and flags are inherited across static library 242 // Inherited libraries and flags are inherited across static library
243 // boundaries. 243 // boundaries.
244 if (!dep->IsFinal()) { 244 if (!dep->IsFinal()) {
245 inherited_libraries_.Append(dep->inherited_libraries().begin(), 245 inherited_libraries_.Append(dep->inherited_libraries().begin(),
246 dep->inherited_libraries().end()); 246 dep->inherited_libraries().end());
247 } else if (dep->complete_static_lib()) {
brettw 2014/09/16 16:46:02 I don't think there should have to be a separate s
brettw 2014/09/16 23:56:12 I get what's happening here. Can you add a comment
kal 2014/09/17 05:03:54 OK I will extend the comment here. The way its im
248 // Inherit final libraries through _complete_ static libraries.
249 for (size_t i = 0; i < dep->inherited_libraries().size(); i++) {
250 const Target* inherited = dep->inherited_libraries()[i];
251 if (inherited->IsFinal())
252 inherited_libraries_.push_back(inherited);
253 }
254 }
247 255
248 // Inherited library settings. 256 // Library settings are always inherited across static library boundaries.
257 if (!dep->IsFinal() || dep->output_type() == STATIC_LIBRARY) {
249 all_lib_dirs_.append(dep->all_lib_dirs()); 258 all_lib_dirs_.append(dep->all_lib_dirs());
250 all_libs_.append(dep->all_libs()); 259 all_libs_.append(dep->all_libs());
251 } 260 }
252 } 261 }
253 } 262 }
254 263
255 void Target::PullForwardedDependentConfigs() { 264 void Target::PullForwardedDependentConfigs() {
256 // Groups implicitly forward all if its dependency's configs. 265 // Groups implicitly forward all if its dependency's configs.
257 if (output_type() == GROUP) { 266 if (output_type() == GROUP) {
258 for (size_t i = 0; i < deps_.size(); i++) 267 for (size_t i = 0; i < deps_.size(); i++)
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
386 395
387 for (size_t i = 0; i < datadeps_.size(); i++) { 396 for (size_t i = 0; i < datadeps_.size(); i++) {
388 if (datadeps_[i].ptr->testonly()) { 397 if (datadeps_[i].ptr->testonly()) {
389 *err = MakeTestOnlyError(this, datadeps_[i].ptr); 398 *err = MakeTestOnlyError(this, datadeps_[i].ptr);
390 return false; 399 return false;
391 } 400 }
392 } 401 }
393 402
394 return true; 403 return true;
395 } 404 }
OLDNEW
« no previous file with comments | « tools/gn/ninja_binary_target_writer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698