| OLD | NEW | 
|---|
| 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  Loading... | 
| 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  Loading... | 
| 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 | 
| OLD | NEW | 
|---|