summaryrefslogtreecommitdiffstats
path: root/tools/gn/ninja_action_target_writer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gn/ninja_action_target_writer.cc')
-rw-r--r--tools/gn/ninja_action_target_writer.cc14
1 files changed, 6 insertions, 8 deletions
diff --git a/tools/gn/ninja_action_target_writer.cc b/tools/gn/ninja_action_target_writer.cc
index 7f14e74..6a632e7 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);
}