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