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

Unified Diff: tools/gn/ninja_target_writer.cc

Issue 1420043004: [GN] Allow spaces in output names and other substitutions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/gn/ninja_target_writer.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/gn/ninja_target_writer.cc
diff --git a/tools/gn/ninja_target_writer.cc b/tools/gn/ninja_target_writer.cc
index 7c168ea7271be364fd3b6d08005aa72f37d541ab..cfc207cf8cc04364fca851c4b70148d1cf80c26c 100644
--- a/tools/gn/ninja_target_writer.cc
+++ b/tools/gn/ninja_target_writer.cc
@@ -9,6 +9,7 @@
#include "base/files/file_util.h"
#include "base/strings/string_util.h"
#include "tools/gn/err.h"
+#include "tools/gn/escape.h"
#include "tools/gn/filesystem_utils.h"
#include "tools/gn/ninja_action_target_writer.h"
#include "tools/gn/ninja_binary_target_writer.h"
@@ -18,7 +19,6 @@
#include "tools/gn/output_file.h"
#include "tools/gn/scheduler.h"
#include "tools/gn/string_utils.h"
-#include "tools/gn/substitution_type.h"
#include "tools/gn/substitution_writer.h"
#include "tools/gn/target.h"
#include "tools/gn/trace.h"
@@ -52,7 +52,7 @@ void NinjaTargetWriter::RunAndWriteFile(const Target* target) {
base::CreateDirectory(ninja_file.DirName());
- // It's rediculously faster to write to a string and then write that to
+ // It's ridiculously faster to write to a string and then write that to
// disk in one operation than to use an fstream here.
std::stringstream file;
@@ -83,60 +83,53 @@ void NinjaTargetWriter::RunAndWriteFile(const Target* target) {
static_cast<int>(contents.size()));
}
+void NinjaTargetWriter::WriteEscapedSubstitution(SubstitutionType type) {
+ EscapeOptions opts;
+ opts.mode = ESCAPE_NINJA;
+
+ out_ << kSubstitutionNinjaNames[type] << " = ";
+ EscapeStringToStream(out_,
+ SubstitutionWriter::GetTargetSubstitution(target_, type),
+ opts);
+ out_ << std::endl;
+}
+
void NinjaTargetWriter::WriteSharedVars(const SubstitutionBits& bits) {
bool written_anything = false;
// Target label.
if (bits.used[SUBSTITUTION_LABEL]) {
- out_ << kSubstitutionNinjaNames[SUBSTITUTION_LABEL] << " = "
- << SubstitutionWriter::GetTargetSubstitution(
- target_, SUBSTITUTION_LABEL)
- << std::endl;
+ WriteEscapedSubstitution(SUBSTITUTION_LABEL);
written_anything = true;
}
// Root gen dir.
if (bits.used[SUBSTITUTION_ROOT_GEN_DIR]) {
- out_ << kSubstitutionNinjaNames[SUBSTITUTION_ROOT_GEN_DIR] << " = "
- << SubstitutionWriter::GetTargetSubstitution(
- target_, SUBSTITUTION_ROOT_GEN_DIR)
- << std::endl;
+ WriteEscapedSubstitution(SUBSTITUTION_ROOT_GEN_DIR);
written_anything = true;
}
// Root out dir.
if (bits.used[SUBSTITUTION_ROOT_OUT_DIR]) {
- out_ << kSubstitutionNinjaNames[SUBSTITUTION_ROOT_OUT_DIR] << " = "
- << SubstitutionWriter::GetTargetSubstitution(
- target_, SUBSTITUTION_ROOT_OUT_DIR)
- << std::endl;
+ WriteEscapedSubstitution(SUBSTITUTION_ROOT_OUT_DIR);
written_anything = true;
}
// Target gen dir.
if (bits.used[SUBSTITUTION_TARGET_GEN_DIR]) {
- out_ << kSubstitutionNinjaNames[SUBSTITUTION_TARGET_GEN_DIR] << " = "
- << SubstitutionWriter::GetTargetSubstitution(
- target_, SUBSTITUTION_TARGET_GEN_DIR)
- << std::endl;
+ WriteEscapedSubstitution(SUBSTITUTION_TARGET_GEN_DIR);
written_anything = true;
}
// Target out dir.
if (bits.used[SUBSTITUTION_TARGET_OUT_DIR]) {
- out_ << kSubstitutionNinjaNames[SUBSTITUTION_TARGET_OUT_DIR] << " = "
- << SubstitutionWriter::GetTargetSubstitution(
- target_, SUBSTITUTION_TARGET_OUT_DIR)
- << std::endl;
+ WriteEscapedSubstitution(SUBSTITUTION_TARGET_OUT_DIR);
written_anything = true;
}
// Target output name.
if (bits.used[SUBSTITUTION_TARGET_OUTPUT_NAME]) {
- out_ << kSubstitutionNinjaNames[SUBSTITUTION_TARGET_OUTPUT_NAME] << " = "
- << SubstitutionWriter::GetTargetSubstitution(
- target_, SUBSTITUTION_TARGET_OUTPUT_NAME)
- << std::endl;
+ WriteEscapedSubstitution(SUBSTITUTION_TARGET_OUTPUT_NAME);
written_anything = true;
}
« no previous file with comments | « tools/gn/ninja_target_writer.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698