| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "tools/gn/ninja_build_writer.h" | 5 #include "tools/gn/ninja_build_writer.h" |
| 6 | 6 |
| 7 #include <fstream> | 7 #include <fstream> |
| 8 #include <map> | 8 #include <map> |
| 9 | 9 |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 21 matching lines...) Expand all Loading... |
| 32 base::FilePath executable; | 32 base::FilePath executable; |
| 33 PathService::Get(base::FILE_EXE, &executable); | 33 PathService::Get(base::FILE_EXE, &executable); |
| 34 | 34 |
| 35 CommandLine cmdline(executable.NormalizePathSeparatorsTo('/')); | 35 CommandLine cmdline(executable.NormalizePathSeparatorsTo('/')); |
| 36 cmdline.AppendArg("gen"); | 36 cmdline.AppendArg("gen"); |
| 37 cmdline.AppendArg(build_settings->build_dir().value()); | 37 cmdline.AppendArg(build_settings->build_dir().value()); |
| 38 cmdline.AppendSwitchPath("--root", build_settings->root_path()); | 38 cmdline.AppendSwitchPath("--root", build_settings->root_path()); |
| 39 cmdline.AppendSwitch("-q"); // Don't write output. | 39 cmdline.AppendSwitch("-q"); // Don't write output. |
| 40 | 40 |
| 41 EscapeOptions escape_shell; | 41 EscapeOptions escape_shell; |
| 42 escape_shell.mode = ESCAPE_SHELL; | 42 escape_shell.mode = ESCAPE_NINJA_COMMAND; |
| 43 #if defined(OS_WIN) | 43 #if defined(OS_WIN) |
| 44 // The command line code quoting varies by platform. We have one string, | 44 // The command line code quoting varies by platform. We have one string, |
| 45 // possibly with spaces, that we want to quote. The Windows command line | 45 // possibly with spaces, that we want to quote. The Windows command line |
| 46 // quotes again, so we don't want quoting. The Posix one doesn't. | 46 // quotes again, so we don't want quoting. The Posix one doesn't. |
| 47 escape_shell.inhibit_quoting = true; | 47 escape_shell.inhibit_quoting = true; |
| 48 #endif | 48 #endif |
| 49 | 49 |
| 50 const CommandLine& our_cmdline = *CommandLine::ForCurrentProcess(); | 50 const CommandLine& our_cmdline = *CommandLine::ForCurrentProcess(); |
| 51 const CommandLine::SwitchMap& switches = our_cmdline.GetSwitches(); | 51 const CommandLine::SwitchMap& switches = our_cmdline.GetSwitches(); |
| 52 for (CommandLine::SwitchMap::const_iterator i = switches.begin(); | 52 for (CommandLine::SwitchMap::const_iterator i = switches.begin(); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 75 const BuildSettings* build_settings, | 75 const BuildSettings* build_settings, |
| 76 const std::vector<const Settings*>& all_settings, | 76 const std::vector<const Settings*>& all_settings, |
| 77 const std::vector<const Target*>& default_toolchain_targets, | 77 const std::vector<const Target*>& default_toolchain_targets, |
| 78 std::ostream& out, | 78 std::ostream& out, |
| 79 std::ostream& dep_out) | 79 std::ostream& dep_out) |
| 80 : build_settings_(build_settings), | 80 : build_settings_(build_settings), |
| 81 all_settings_(all_settings), | 81 all_settings_(all_settings), |
| 82 default_toolchain_targets_(default_toolchain_targets), | 82 default_toolchain_targets_(default_toolchain_targets), |
| 83 out_(out), | 83 out_(out), |
| 84 dep_out_(dep_out), | 84 dep_out_(dep_out), |
| 85 path_output_(build_settings->build_dir(), ESCAPE_NINJA, false), | 85 path_output_(build_settings->build_dir(), ESCAPE_NINJA), |
| 86 helper_(build_settings) { | 86 helper_(build_settings) { |
| 87 } | 87 } |
| 88 | 88 |
| 89 NinjaBuildWriter::~NinjaBuildWriter() { | 89 NinjaBuildWriter::~NinjaBuildWriter() { |
| 90 } | 90 } |
| 91 | 91 |
| 92 void NinjaBuildWriter::Run() { | 92 void NinjaBuildWriter::Run() { |
| 93 WriteNinjaRules(); | 93 WriteNinjaRules(); |
| 94 WriteSubninjas(); | 94 WriteSubninjas(); |
| 95 WritePhonyAndAllRules(); | 95 WritePhonyAndAllRules(); |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 244 EscapeOptions ninja_escape; | 244 EscapeOptions ninja_escape; |
| 245 ninja_escape.mode = ESCAPE_NINJA; | 245 ninja_escape.mode = ESCAPE_NINJA; |
| 246 | 246 |
| 247 // Escape for special chars Ninja will handle. | 247 // Escape for special chars Ninja will handle. |
| 248 std::string escaped = EscapeString(phony_name, ninja_escape, NULL); | 248 std::string escaped = EscapeString(phony_name, ninja_escape, NULL); |
| 249 | 249 |
| 250 out_ << "build " << escaped << ": phony "; | 250 out_ << "build " << escaped << ": phony "; |
| 251 path_output_.WriteFile(out_, target_file); | 251 path_output_.WriteFile(out_, target_file); |
| 252 out_ << std::endl; | 252 out_ << std::endl; |
| 253 } | 253 } |
| OLD | NEW |