| Index: tools/gn/ninja_action_target_writer.cc
|
| diff --git a/tools/gn/ninja_action_target_writer.cc b/tools/gn/ninja_action_target_writer.cc
|
| index 7f14e74660e4d7ca1ef2b4a493fde850da3eda43..6a632e789e32f7f0f24c69dc9f89c8d75a7f5b6c 100644
|
| --- a/tools/gn/ninja_action_target_writer.cc
|
| +++ b/tools/gn/ninja_action_target_writer.cc
|
| @@ -23,7 +23,8 @@ NinjaActionTargetWriter::~NinjaActionTargetWriter() {
|
| }
|
|
|
| void NinjaActionTargetWriter::Run() {
|
| - FileTemplate args_template(target_->action_values().args());
|
| + FileTemplate args_template(target_->settings(),
|
| + target_->action_values().args());
|
| std::string custom_rule_name = WriteRuleDefinition(args_template);
|
|
|
| // Collect our deps to pass as "extra hard dependencies" for input deps. This
|
| @@ -136,14 +137,11 @@ std::string NinjaActionTargetWriter::WriteRuleDefinition(
|
| void NinjaActionTargetWriter::WriteArgsSubstitutions(
|
| const SourceFile& source,
|
| const FileTemplate& args_template) {
|
| - std::ostringstream source_file_stream;
|
| - path_output_no_escaping_.WriteFile(source_file_stream, source);
|
| -
|
| EscapeOptions template_escape_options;
|
| template_escape_options.mode = ESCAPE_NINJA_COMMAND;
|
|
|
| args_template.WriteNinjaVariablesForSubstitution(
|
| - out_, source_file_stream.str(), template_escape_options);
|
| + out_, target_->settings(), source, template_escape_options);
|
| }
|
|
|
| void NinjaActionTargetWriter::WriteSourceRules(
|
| @@ -208,7 +206,7 @@ void NinjaActionTargetWriter::WriteOutputFilesForBuildLine(
|
| const SourceFile& source,
|
| std::vector<OutputFile>* output_files) {
|
| std::vector<std::string> output_template_result;
|
| - output_template.ApplyString(source.value(), &output_template_result);
|
| + output_template.Apply(source, &output_template_result);
|
| for (size_t out_i = 0; out_i < output_template_result.size(); out_i++) {
|
| OutputFile output_path(output_template_result[out_i]);
|
| output_files->push_back(output_path);
|
| @@ -219,7 +217,7 @@ void NinjaActionTargetWriter::WriteOutputFilesForBuildLine(
|
|
|
| void NinjaActionTargetWriter::WriteDepfile(const SourceFile& source) {
|
| std::vector<std::string> result;
|
| - GetDepfileTemplate().ApplyString(source.value(), &result);
|
| + GetDepfileTemplate().Apply(source, &result);
|
| path_output_.WriteFile(out_, OutputFile(result[0]));
|
| }
|
|
|
| @@ -229,5 +227,5 @@ FileTemplate NinjaActionTargetWriter::GetDepfileTemplate() const {
|
| RemovePrefix(target_->action_values().depfile().value(),
|
| settings_->build_settings()->build_dir().value());
|
| template_args.push_back(depfile_relative_to_build_dir);
|
| - return FileTemplate(template_args);
|
| + return FileTemplate(settings_, template_args);
|
| }
|
|
|