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

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

Issue 1868023002: Add GN output prefix override and allow empty output extensions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 #include "tools/gn/substitution_writer.h" 5 #include "tools/gn/substitution_writer.h"
6 6
7 #include "tools/gn/build_settings.h" 7 #include "tools/gn/build_settings.h"
8 #include "tools/gn/escape.h" 8 #include "tools/gn/escape.h"
9 #include "tools/gn/filesystem_utils.h" 9 #include "tools/gn/filesystem_utils.h"
10 #include "tools/gn/output_file.h" 10 #include "tools/gn/output_file.h"
(...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 SetDirOrDotWithNoSlash( 441 SetDirOrDotWithNoSlash(
442 GetTargetGenDirAsOutputFile(target).value(), 442 GetTargetGenDirAsOutputFile(target).value(),
443 result); 443 result);
444 break; 444 break;
445 case SUBSTITUTION_TARGET_OUT_DIR: 445 case SUBSTITUTION_TARGET_OUT_DIR:
446 SetDirOrDotWithNoSlash( 446 SetDirOrDotWithNoSlash(
447 GetTargetOutputDirAsOutputFile(target).value(), 447 GetTargetOutputDirAsOutputFile(target).value(),
448 result); 448 result);
449 break; 449 break;
450 case SUBSTITUTION_TARGET_OUTPUT_NAME: 450 case SUBSTITUTION_TARGET_OUTPUT_NAME:
451 *result = target->GetComputedOutputName(true); 451 *result = target->GetComputedOutputName();
452 break; 452 break;
453 default: 453 default:
454 return false; 454 return false;
455 } 455 }
456 return true; 456 return true;
457 } 457 }
458 458
459 // static 459 // static
460 std::string SubstitutionWriter::GetTargetSubstitution( 460 std::string SubstitutionWriter::GetTargetSubstitution(
461 const Target* target, 461 const Target* target,
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
540 const Tool* tool, 540 const Tool* tool,
541 SubstitutionType type) { 541 SubstitutionType type) {
542 // First try the common tool ones. 542 // First try the common tool ones.
543 std::string result; 543 std::string result;
544 if (GetTargetSubstitution(target, type, &result)) 544 if (GetTargetSubstitution(target, type, &result))
545 return result; 545 return result;
546 546
547 // Fall-through to the linker-specific ones. 547 // Fall-through to the linker-specific ones.
548 switch (type) { 548 switch (type) {
549 case SUBSTITUTION_OUTPUT_EXTENSION: 549 case SUBSTITUTION_OUTPUT_EXTENSION:
550 // Use the extension provided on the target if nonempty, otherwise 550 // Use the extension provided on the target if specified, otherwise
551 // fall back on the default. Note that the target's output extension 551 // fall back on the default. Note that the target's output extension
552 // does not include the dot but the tool's does. 552 // does not include the dot but the tool's does.
553 if (!target->output_extension_set())
554 return tool->default_output_extension();
553 if (target->output_extension().empty()) 555 if (target->output_extension().empty())
554 return tool->default_output_extension(); 556 return std::string(); // Explicitly set to no extension.
555 return std::string(".") + target->output_extension(); 557 return std::string(".") + target->output_extension();
556 558
557 default: 559 default:
558 NOTREACHED(); 560 NOTREACHED();
559 return std::string(); 561 return std::string();
560 } 562 }
561 } 563 }
OLDNEW
« no previous file with comments | « tools/gn/ninja_binary_target_writer_unittest.cc ('k') | tools/gn/substitution_writer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698