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

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

Issue 630223002: gn: Support build directories outside the source tree. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Updated patch set Created 6 years, 1 month 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 <sstream> 5 #include <sstream>
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/files/file_util.h" 8 #include "base/files/file_util.h"
9 #include "base/strings/string_split.h" 9 #include "base/strings/string_split.h"
10 #include "tools/gn/commands.h" 10 #include "tools/gn/commands.h"
(...skipping 719 matching lines...) Expand 10 before | Expand all | Expand 10 after
730 // should all be done in parallel. 730 // should all be done in parallel.
731 if (args.size() != 1) { 731 if (args.size() != 1) {
732 Err(Location(), "Expecting exactly one argument, see `gn help format`.\n") 732 Err(Location(), "Expecting exactly one argument, see `gn help format`.\n")
733 .PrintToStdout(); 733 .PrintToStdout();
734 return 1; 734 return 1;
735 } 735 }
736 736
737 Setup setup; 737 Setup setup;
738 SourceDir source_dir = 738 SourceDir source_dir =
739 SourceDirForCurrentDirectory(setup.build_settings().root_path()); 739 SourceDirForCurrentDirectory(setup.build_settings().root_path());
740 SourceFile file = source_dir.ResolveRelativeFile(args[0]); 740 SourceFile file = source_dir.ResolveRelativeFile(args[0],
741 setup.build_settings().root_path_utf8());
741 742
742 std::string output_string; 743 std::string output_string;
743 if (FormatFileToString(&setup, file, dump_tree, &output_string)) { 744 if (FormatFileToString(&setup, file, dump_tree, &output_string)) {
744 bool in_place = 745 bool in_place =
745 base::CommandLine::ForCurrentProcess()->HasSwitch(kSwitchInPlace); 746 base::CommandLine::ForCurrentProcess()->HasSwitch(kSwitchInPlace);
746 if (in_place) { 747 if (in_place) {
747 base::FilePath to_write = setup.build_settings().GetFullPath(file); 748 base::FilePath to_write = setup.build_settings().GetFullPath(file);
748 if (base::WriteFile(to_write, 749 if (base::WriteFile(to_write,
749 output_string.data(), 750 output_string.data(),
750 static_cast<int>(output_string.size())) == -1) { 751 static_cast<int>(output_string.size())) == -1) {
751 Err(Location(), 752 Err(Location(),
752 std::string("Failed to write formatted output back to \"") + 753 std::string("Failed to write formatted output back to \"") +
753 to_write.AsUTF8Unsafe() + std::string("\".")).PrintToStdout(); 754 to_write.AsUTF8Unsafe() + std::string("\".")).PrintToStdout();
754 return 1; 755 return 1;
755 } 756 }
756 printf("Wrote formatted to '%s'.\n", to_write.AsUTF8Unsafe().c_str()); 757 printf("Wrote formatted to '%s'.\n", to_write.AsUTF8Unsafe().c_str());
757 } else { 758 } else {
758 printf("%s", output_string.c_str()); 759 printf("%s", output_string.c_str());
759 } 760 }
760 } 761 }
761 762
762 return 0; 763 return 0;
763 } 764 }
764 765
765 } // namespace commands 766 } // namespace commands
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698