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

Side by Side Diff: tools/gn/ninja_binary_target_writer.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 | « no previous file | tools/gn/target.cc » ('j') | tools/gn/target.cc » ('J')
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/ninja_binary_target_writer.h" 5 #include "tools/gn/ninja_binary_target_writer.h"
6 6
7 #include <set> 7 #include <set>
8 8
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "tools/gn/config_values_extractors.h" 10 #include "tools/gn/config_values_extractors.h"
(...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 std::vector<OutputFile> tool_outputs; // Prevent allocation in loop. 416 std::vector<OutputFile> tool_outputs; // Prevent allocation in loop.
417 for (size_t i = 0; i < dep->sources().size(); i++) { 417 for (size_t i = 0; i < dep->sources().size(); i++) {
418 Toolchain::ToolType tool_type = Toolchain::TYPE_NONE; 418 Toolchain::ToolType tool_type = Toolchain::TYPE_NONE;
419 if (GetOutputFilesForSource(dep, dep->sources()[i], &tool_type, 419 if (GetOutputFilesForSource(dep, dep->sources()[i], &tool_type,
420 &tool_outputs)) { 420 &tool_outputs)) {
421 // Only link the first output if there are more than one. 421 // Only link the first output if there are more than one.
422 extra_object_files->push_back(tool_outputs[0]); 422 extra_object_files->push_back(tool_outputs[0]);
423 } 423 }
424 } 424 }
425 } 425 }
426 } else if (target_->complete_static_lib() && dep->IsFinal()) {
427 non_linkable_deps->push_back(dep);
426 } else if (can_link_libs && dep->IsLinkable()) { 428 } else if (can_link_libs && dep->IsLinkable()) {
427 linkable_deps->push_back(dep); 429 linkable_deps->push_back(dep);
428 } else { 430 } else {
429 non_linkable_deps->push_back(dep); 431 non_linkable_deps->push_back(dep);
430 } 432 }
431 } 433 }
432 434
433 void NinjaBinaryTargetWriter::WriteOrderOnlyDependencies( 435 void NinjaBinaryTargetWriter::WriteOrderOnlyDependencies(
434 const UniqueVector<const Target*>& non_linkable_deps) { 436 const UniqueVector<const Target*>& non_linkable_deps) {
435 const std::vector<SourceFile>& data = target_->data(); 437 const std::vector<SourceFile>& data = target_->data();
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
468 return false; // No tool for this file (it's a header file or something). 470 return false; // No tool for this file (it's a header file or something).
469 const Tool* tool = target->toolchain()->GetTool(*computed_tool_type); 471 const Tool* tool = target->toolchain()->GetTool(*computed_tool_type);
470 if (!tool) 472 if (!tool)
471 return false; // Tool does not apply for this toolchain.file. 473 return false; // Tool does not apply for this toolchain.file.
472 474
473 // Figure out what output(s) this compiler produces. 475 // Figure out what output(s) this compiler produces.
474 SubstitutionWriter::ApplyListToCompilerAsOutputFile( 476 SubstitutionWriter::ApplyListToCompilerAsOutputFile(
475 target, source, tool->outputs(), outputs); 477 target, source, tool->outputs(), outputs);
476 return !outputs->empty(); 478 return !outputs->empty();
477 } 479 }
OLDNEW
« no previous file with comments | « no previous file | tools/gn/target.cc » ('j') | tools/gn/target.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698