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

Unified Diff: tools/gn/visual_studio_writer.cc

Issue 1723663006: GN: Fix Visual Studio project build command (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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/visual_studio_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/visual_studio_writer.cc
diff --git a/tools/gn/visual_studio_writer.cc b/tools/gn/visual_studio_writer.cc
index 7748fbe19df46326e53f19630d2b23ee04b7f568..fc4e6974cae631c0ab8cce12d37e27464001775e 100644
--- a/tools/gn/visual_studio_writer.cc
+++ b/tools/gn/visual_studio_writer.cc
@@ -179,7 +179,10 @@ VisualStudioWriter::SolutionProject::~SolutionProject() = default;
VisualStudioWriter::VisualStudioWriter(const BuildSettings* build_settings,
Version version)
- : build_settings_(build_settings) {
+ : build_settings_(build_settings),
+ ninja_path_output_(build_settings->build_dir(),
+ build_settings->root_path_utf8(),
+ EscapingMode::ESCAPE_NINJA_COMMAND) {
const Value* value = build_settings->build_args().GetArgOverride("is_debug");
is_debug_config_ = value == nullptr || value->boolean_value();
config_platform_ = "Win32";
@@ -496,12 +499,14 @@ bool VisualStudioWriter::WriteProjectFileContents(
"$(VCTargetsPath)\\BuildCustomizations\\masm.targets"));
project.SubElement("ImportGroup", XmlAttributes("Label", "ExtensionTargets"));
+ std::string ninja_target = GetNinjaTarget(target);
+
{
scoped_ptr<XmlElementWriter> build =
project.SubElement("Target", XmlAttributes("Name", "Build"));
build->SubElement(
- "Exec",
- XmlAttributes("Command", "call ninja.exe -C $(OutDir) $(ProjectName)"));
+ "Exec", XmlAttributes("Command",
+ "call ninja.exe -C $(OutDir) " + ninja_target));
}
{
@@ -510,7 +515,7 @@ bool VisualStudioWriter::WriteProjectFileContents(
clean->SubElement(
"Exec",
XmlAttributes("Command",
- "call ninja.exe -C $(OutDir) -tclean $(ProjectName)"));
+ "call ninja.exe -C $(OutDir) -tclean " + ninja_target));
}
return true;
@@ -751,3 +756,11 @@ void VisualStudioWriter::ResolveSolutionFolders() {
parents.push_back(folder);
}
}
+
+std::string VisualStudioWriter::GetNinjaTarget(const Target* target) {
+ std::ostringstream ninja_target_out;
+ DCHECK(!target->dependency_output_file().value().empty());
+ ninja_path_output_.WriteFile(ninja_target_out,
+ target->dependency_output_file());
+ return ninja_target_out.str();
+}
« no previous file with comments | « tools/gn/visual_studio_writer.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698