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/build_settings.h" | 5 #include "tools/gn/build_settings.h" |
6 | 6 |
7 #include "base/files/file_util.h" | 7 #include "base/files/file_util.h" |
8 #include "tools/gn/filesystem_utils.h" | 8 #include "tools/gn/filesystem_utils.h" |
9 | 9 |
10 BuildSettings::BuildSettings() { | 10 BuildSettings::BuildSettings() { |
11 } | 11 } |
12 | 12 |
13 BuildSettings::BuildSettings(const BuildSettings& other) | 13 BuildSettings::BuildSettings(const BuildSettings& other) |
14 : root_path_(other.root_path_), | 14 : root_path_(other.root_path_), |
15 root_path_utf8_(other.root_path_utf8_), | 15 root_path_utf8_(other.root_path_utf8_), |
16 secondary_source_path_(other.secondary_source_path_), | 16 secondary_source_path_(other.secondary_source_path_), |
17 python_path_(other.python_path_), | 17 python_path_(other.python_path_), |
18 build_config_file_(other.build_config_file_), | 18 build_config_file_(other.build_config_file_), |
19 build_dir_(other.build_dir_), | 19 build_dir_(other.build_dir_), |
20 build_to_source_dir_string_(other.build_to_source_dir_string_), | |
21 build_args_(other.build_args_) { | 20 build_args_(other.build_args_) { |
22 } | 21 } |
23 | 22 |
24 BuildSettings::~BuildSettings() { | 23 BuildSettings::~BuildSettings() { |
25 } | 24 } |
26 | 25 |
27 void BuildSettings::SetRootPath(const base::FilePath& r) { | 26 void BuildSettings::SetRootPath(const base::FilePath& r) { |
28 DCHECK(r.value()[r.value().size() - 1] != base::FilePath::kSeparators[0]); | 27 DCHECK(r.value()[r.value().size() - 1] != base::FilePath::kSeparators[0]); |
29 root_path_ = r.NormalizePathSeparatorsTo('/'); | 28 root_path_ = r.NormalizePathSeparatorsTo('/'); |
30 root_path_utf8_ = FilePathToUTF8(root_path_); | 29 root_path_utf8_ = FilePathToUTF8(root_path_); |
31 } | 30 } |
32 | 31 |
33 void BuildSettings::SetSecondarySourcePath(const SourceDir& d) { | 32 void BuildSettings::SetSecondarySourcePath(const SourceDir& d) { |
34 secondary_source_path_ = GetFullPath(d).NormalizePathSeparatorsTo('/'); | 33 secondary_source_path_ = GetFullPath(d).NormalizePathSeparatorsTo('/'); |
35 } | 34 } |
36 | 35 |
37 void BuildSettings::SetBuildDir(const SourceDir& d) { | 36 void BuildSettings::SetBuildDir(const SourceDir& d) { |
38 build_dir_ = d; | 37 build_dir_ = d; |
39 build_to_source_dir_string_ = InvertDir(d); | |
40 } | 38 } |
41 | 39 |
42 base::FilePath BuildSettings::GetFullPath(const SourceFile& file) const { | 40 base::FilePath BuildSettings::GetFullPath(const SourceFile& file) const { |
43 return file.Resolve(root_path_).NormalizePathSeparatorsTo('/'); | 41 return file.Resolve(root_path_).NormalizePathSeparatorsTo('/'); |
44 } | 42 } |
45 | 43 |
46 base::FilePath BuildSettings::GetFullPath(const SourceDir& dir) const { | 44 base::FilePath BuildSettings::GetFullPath(const SourceDir& dir) const { |
47 return dir.Resolve(root_path_).NormalizePathSeparatorsTo('/'); | 45 return dir.Resolve(root_path_).NormalizePathSeparatorsTo('/'); |
48 } | 46 } |
49 | 47 |
50 base::FilePath BuildSettings::GetFullPathSecondary( | 48 base::FilePath BuildSettings::GetFullPathSecondary( |
51 const SourceFile& file) const { | 49 const SourceFile& file) const { |
52 return file.Resolve(secondary_source_path_).NormalizePathSeparatorsTo('/'); | 50 return file.Resolve(secondary_source_path_).NormalizePathSeparatorsTo('/'); |
53 } | 51 } |
54 | 52 |
55 base::FilePath BuildSettings::GetFullPathSecondary( | 53 base::FilePath BuildSettings::GetFullPathSecondary( |
56 const SourceDir& dir) const { | 54 const SourceDir& dir) const { |
57 return dir.Resolve(secondary_source_path_).NormalizePathSeparatorsTo('/'); | 55 return dir.Resolve(secondary_source_path_).NormalizePathSeparatorsTo('/'); |
58 } | 56 } |
59 | 57 |
60 void BuildSettings::ItemDefined(scoped_ptr<Item> item) const { | 58 void BuildSettings::ItemDefined(scoped_ptr<Item> item) const { |
61 DCHECK(item); | 59 DCHECK(item); |
62 if (!item_defined_callback_.is_null()) | 60 if (!item_defined_callback_.is_null()) |
63 item_defined_callback_.Run(item.Pass()); | 61 item_defined_callback_.Run(item.Pass()); |
64 } | 62 } |
OLD | NEW |