mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-24 06:16:30 +03:00
78 lines
2.6 KiB
C++
78 lines
2.6 KiB
C++
// Copyright (c) 2013 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#include "tools/gn/build_settings.h"
|
|
|
|
#include <utility>
|
|
|
|
#include "base/files/file_util.h"
|
|
#include "tools/gn/filesystem_utils.h"
|
|
|
|
BuildSettings::BuildSettings() = default;
|
|
|
|
BuildSettings::BuildSettings(const BuildSettings& other)
|
|
: root_path_(other.root_path_),
|
|
root_path_utf8_(other.root_path_utf8_),
|
|
secondary_source_path_(other.secondary_source_path_),
|
|
python_path_(other.python_path_),
|
|
build_config_file_(other.build_config_file_),
|
|
arg_file_template_path_(other.arg_file_template_path_),
|
|
build_dir_(other.build_dir_),
|
|
build_args_(other.build_args_) {}
|
|
|
|
BuildSettings::~BuildSettings() = default;
|
|
|
|
void BuildSettings::SetRootTargetLabel(const Label& r) {
|
|
root_target_label_ = r;
|
|
}
|
|
|
|
void BuildSettings::SetRootPath(const base::FilePath& r) {
|
|
DCHECK(r.value()[r.value().size() - 1] != base::FilePath::kSeparators[0]);
|
|
root_path_ = r.NormalizePathSeparatorsTo('/');
|
|
root_path_utf8_ = FilePathToUTF8(root_path_);
|
|
}
|
|
|
|
void BuildSettings::SetSecondarySourcePath(const SourceDir& d) {
|
|
secondary_source_path_ = GetFullPath(d).NormalizePathSeparatorsTo('/');
|
|
}
|
|
|
|
void BuildSettings::SetBuildDir(const SourceDir& d) {
|
|
build_dir_ = d;
|
|
}
|
|
|
|
base::FilePath BuildSettings::GetFullPath(const SourceFile& file) const {
|
|
return file.Resolve(root_path_).NormalizePathSeparatorsTo('/');
|
|
}
|
|
|
|
base::FilePath BuildSettings::GetFullPath(const SourceDir& dir) const {
|
|
return dir.Resolve(root_path_).NormalizePathSeparatorsTo('/');
|
|
}
|
|
|
|
base::FilePath BuildSettings::GetFullPath(const std::string& path,
|
|
bool as_file) const {
|
|
return ResolvePath(path, as_file, root_path_).NormalizePathSeparatorsTo('/');
|
|
}
|
|
|
|
base::FilePath BuildSettings::GetFullPathSecondary(
|
|
const SourceFile& file) const {
|
|
return file.Resolve(secondary_source_path_).NormalizePathSeparatorsTo('/');
|
|
}
|
|
|
|
base::FilePath BuildSettings::GetFullPathSecondary(
|
|
const SourceDir& dir) const {
|
|
return dir.Resolve(secondary_source_path_).NormalizePathSeparatorsTo('/');
|
|
}
|
|
|
|
base::FilePath BuildSettings::GetFullPathSecondary(const std::string& path,
|
|
bool as_file) const {
|
|
return ResolvePath(path, as_file, secondary_source_path_)
|
|
.NormalizePathSeparatorsTo('/');
|
|
}
|
|
|
|
void BuildSettings::ItemDefined(std::unique_ptr<Item> item) const {
|
|
DCHECK(item);
|
|
if (!item_defined_callback_.is_null())
|
|
item_defined_callback_.Run(std::move(item));
|
|
}
|