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

Side by Side Diff: tools/gn/command_clean.cc

Issue 2308113002: Fix printing of directory name on gn clean failure (Closed)
Patch Set: Created 4 years, 3 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "base/files/file_path.h" 5 #include "base/files/file_path.h"
6 #include "base/files/file_util.h" 6 #include "base/files/file_util.h"
7 #include "base/strings/string_split.h" 7 #include "base/strings/string_split.h"
8 #include "base/strings/stringprintf.h" 8 #include "base/strings/stringprintf.h"
9 #include "tools/gn/commands.h" 9 #include "tools/gn/commands.h"
10 #include "tools/gn/err.h" 10 #include "tools/gn/err.h"
11 #include "tools/gn/filesystem_utils.h"
11 #include "tools/gn/setup.h" 12 #include "tools/gn/setup.h"
12 13
13 namespace { 14 namespace {
14 15
15 // Extracts from a build.ninja the commands to run GN. 16 // Extracts from a build.ninja the commands to run GN.
16 // 17 //
17 // The commands to run GN are the gn rule and build.ninja build step at the top 18 // The commands to run GN are the gn rule and build.ninja build step at the top
18 // of the build.ninja file. We want to keep these when deleting GN builds since 19 // of the build.ninja file. We want to keep these when deleting GN builds since
19 // we want to preserve the command-line flags to GN. 20 // we want to preserve the command-line flags to GN.
20 // 21 //
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 return 1; 78 return 1;
78 79
79 base::FilePath build_dir(setup->build_settings().GetFullPath( 80 base::FilePath build_dir(setup->build_settings().GetFullPath(
80 SourceDir(setup->build_settings().build_dir().value()))); 81 SourceDir(setup->build_settings().build_dir().value())));
81 82
82 // NOTE: Not all GN builds have args.gn file hence we check here 83 // NOTE: Not all GN builds have args.gn file hence we check here
83 // if a build.ninja.d files exists instead. 84 // if a build.ninja.d files exists instead.
84 base::FilePath build_ninja_d_file = build_dir.AppendASCII("build.ninja.d"); 85 base::FilePath build_ninja_d_file = build_dir.AppendASCII("build.ninja.d");
85 if (!base::PathExists(build_ninja_d_file)) { 86 if (!base::PathExists(build_ninja_d_file)) {
86 Err(Location(), 87 Err(Location(),
87 base::StringPrintf("%s does not look like a build directory.\n", 88 base::StringPrintf(
88 build_ninja_d_file.DirName().value().c_str())) 89 "%s does not look like a build directory.\n",
90 FilePathToUTF8(build_ninja_d_file.DirName().value()).c_str()))
89 .PrintToStdout(); 91 .PrintToStdout();
90 return 1; 92 return 1;
91 } 93 }
92 94
93 // Erase everything but the args file, and write a dummy build.ninja file that 95 // Erase everything but the args file, and write a dummy build.ninja file that
94 // will automatically rerun GN the next time Ninja is run. 96 // will automatically rerun GN the next time Ninja is run.
95 base::FilePath build_ninja_file = build_dir.AppendASCII("build.ninja"); 97 base::FilePath build_ninja_file = build_dir.AppendASCII("build.ninja");
96 std::string build_commands = ExtractGNBuildCommands(build_ninja_file); 98 std::string build_commands = ExtractGNBuildCommands(build_ninja_file);
97 99
98 // Read the args.gn file, if any. Not all GN builds have one. 100 // Read the args.gn file, if any. Not all GN builds have one.
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 static_cast<int>(dummy_content.size())) == -1) { 143 static_cast<int>(dummy_content.size())) == -1) {
142 Err(Location(), std::string("Failed to write build.ninja.d.")) 144 Err(Location(), std::string("Failed to write build.ninja.d."))
143 .PrintToStdout(); 145 .PrintToStdout();
144 return 1; 146 return 1;
145 } 147 }
146 148
147 return 0; 149 return 0;
148 } 150 }
149 151
150 } // namespace commands 152 } // namespace commands
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698