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

Side by Side Diff: tools/gn/function_read_file.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 (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 "base/files/file_util.h" 5 #include "base/files/file_util.h"
6 #include "tools/gn/err.h" 6 #include "tools/gn/err.h"
7 #include "tools/gn/filesystem_utils.h" 7 #include "tools/gn/filesystem_utils.h"
8 #include "tools/gn/functions.h" 8 #include "tools/gn/functions.h"
9 #include "tools/gn/input_conversion.h" 9 #include "tools/gn/input_conversion.h"
10 #include "tools/gn/input_file.h" 10 #include "tools/gn/input_file.h"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 if (args.size() != 2) { 46 if (args.size() != 2) {
47 *err = Err(function->function(), "Wrong number of arguments to read_file", 47 *err = Err(function->function(), "Wrong number of arguments to read_file",
48 "I expected two arguments."); 48 "I expected two arguments.");
49 return Value(); 49 return Value();
50 } 50 }
51 if (!args[0].VerifyTypeIs(Value::STRING, err)) 51 if (!args[0].VerifyTypeIs(Value::STRING, err))
52 return Value(); 52 return Value();
53 53
54 // Compute the file name. 54 // Compute the file name.
55 const SourceDir& cur_dir = scope->GetSourceDir(); 55 const SourceDir& cur_dir = scope->GetSourceDir();
56 SourceFile source_file = cur_dir.ResolveRelativeFile(args[0].string_value()); 56 SourceFile source_file = cur_dir.ResolveRelativeFile(args[0].string_value(),
57 scope->settings()->build_settings()->root_path_utf8());
57 base::FilePath file_path = 58 base::FilePath file_path =
58 scope->settings()->build_settings()->GetFullPath(source_file); 59 scope->settings()->build_settings()->GetFullPath(source_file);
59 60
60 // Ensure that everything is recomputed if the read file changes. 61 // Ensure that everything is recomputed if the read file changes.
61 g_scheduler->AddGenDependency(file_path); 62 g_scheduler->AddGenDependency(file_path);
62 63
63 // Read contents. 64 // Read contents.
64 std::string file_contents; 65 std::string file_contents;
65 if (!base::ReadFileToString(file_path, &file_contents)) { 66 if (!base::ReadFileToString(file_path, &file_contents)) {
66 *err = Err(args[0], "Could not read file.", 67 *err = Err(args[0], "Could not read file.",
67 "I resolved this to \"" + FilePathToUTF8(file_path) + "\"."); 68 "I resolved this to \"" + FilePathToUTF8(file_path) + "\".");
68 return Value(); 69 return Value();
69 } 70 }
70 71
71 return ConvertInputToValue(scope->settings(), file_contents, function, 72 return ConvertInputToValue(scope->settings(), file_contents, function,
72 args[1], err); 73 args[1], err);
73 } 74 }
74 75
75 } // namespace functions 76 } // namespace functions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698