| Index: tools/gn/ninja_target_writer.cc
|
| diff --git a/tools/gn/ninja_target_writer.cc b/tools/gn/ninja_target_writer.cc
|
| index d73c873271d0784a252be41dea5e7b866b6ff663..bdc0472417cc476928c8f22ec3ccb9662f3b6400 100644
|
| --- a/tools/gn/ninja_target_writer.cc
|
| +++ b/tools/gn/ninja_target_writer.cc
|
| @@ -19,9 +19,12 @@
|
| #include "tools/gn/target.h"
|
| #include "tools/gn/trace.h"
|
|
|
| -NinjaTargetWriter::NinjaTargetWriter(const Target* target, std::ostream& out)
|
| +NinjaTargetWriter::NinjaTargetWriter(const Target* target,
|
| + const Toolchain* toolchain,
|
| + std::ostream& out)
|
| : settings_(target->settings()),
|
| target_(target),
|
| + toolchain_(toolchain),
|
| out_(out),
|
| path_output_(settings_->build_settings()->build_dir(),
|
| ESCAPE_NINJA, true),
|
| @@ -45,7 +48,7 @@ void NinjaTargetWriter::RunAndWriteFile(const Target* target) {
|
|
|
| ScopedTrace trace(TraceItem::TRACE_FILE_WRITE,
|
| target->label().GetUserVisibleName(false));
|
| - trace.SetToolchain(settings->toolchain()->label());
|
| + trace.SetToolchain(settings->toolchain_label());
|
|
|
| base::FilePath ninja_file(settings->build_settings()->GetFullPath(
|
| helper.GetNinjaFileForTarget(target).GetSourceFile(
|
| @@ -54,6 +57,10 @@ void NinjaTargetWriter::RunAndWriteFile(const Target* target) {
|
| if (g_scheduler->verbose_logging())
|
| g_scheduler->Log("Writing", FilePathToUTF8(ninja_file));
|
|
|
| + const Toolchain* tc = settings->build_settings()->toolchain_manager()
|
| + .GetToolchainDefinitionUnlocked(settings->toolchain_label());
|
| + CHECK(tc);
|
| +
|
| file_util::CreateDirectory(ninja_file.DirName());
|
|
|
| // It's rediculously faster to write to a string and then write that to
|
| @@ -62,19 +69,19 @@ void NinjaTargetWriter::RunAndWriteFile(const Target* target) {
|
|
|
| // Call out to the correct sub-type of writer.
|
| if (target->output_type() == Target::COPY_FILES) {
|
| - NinjaCopyTargetWriter writer(target, file);
|
| + NinjaCopyTargetWriter writer(target, tc, file);
|
| writer.Run();
|
| } else if (target->output_type() == Target::CUSTOM) {
|
| - NinjaScriptTargetWriter writer(target, file);
|
| + NinjaScriptTargetWriter writer(target, tc, file);
|
| writer.Run();
|
| } else if (target->output_type() == Target::GROUP) {
|
| - NinjaGroupTargetWriter writer(target, file);
|
| + NinjaGroupTargetWriter writer(target, tc, file);
|
| writer.Run();
|
| } else if (target->output_type() == Target::EXECUTABLE ||
|
| target->output_type() == Target::STATIC_LIBRARY ||
|
| target->output_type() == Target::SHARED_LIBRARY ||
|
| target->output_type() == Target::SOURCE_SET) {
|
| - NinjaBinaryTargetWriter writer(target, file);
|
| + NinjaBinaryTargetWriter writer(target, tc, file);
|
| writer.Run();
|
| } else {
|
| CHECK(0);
|
| @@ -85,10 +92,6 @@ void NinjaTargetWriter::RunAndWriteFile(const Target* target) {
|
| static_cast<int>(contents.size()));
|
| }
|
|
|
| -const Toolchain* NinjaTargetWriter::GetToolchain() const {
|
| - return target_->settings()->toolchain();
|
| -}
|
| -
|
| std::string NinjaTargetWriter::GetSourcesImplicitDeps() const {
|
| std::ostringstream ret;
|
| ret << " |";
|
|
|