Index: tools/gn/desc_builder.cc |
diff --git a/tools/gn/desc_builder.cc b/tools/gn/desc_builder.cc |
index aca148c75e6daccfe5a89edfab41809164e35c5d..3e2aaa0807eee9998c841ebee31573edb17e537a 100644 |
--- a/tools/gn/desc_builder.cc |
+++ b/tools/gn/desc_builder.cc |
@@ -159,13 +159,14 @@ class BaseDescBuilder { |
const ConfigValues& values) { |
if (what(variables::kPrecompiledHeader) && |
!values.precompiled_header().empty()) { |
- out->Set(variables::kPrecompiledHeader, |
- RenderValue(values.precompiled_header(), true)); |
+ out->SetWithoutPathExpansion( |
+ variables::kPrecompiledHeader, |
+ RenderValue(values.precompiled_header(), true)); |
} |
if (what(variables::kPrecompiledSource) && |
!values.precompiled_source().is_null()) { |
- out->Set(variables::kPrecompiledSource, |
- RenderValue(values.precompiled_source())); |
+ out->SetWithoutPathExpansion(variables::kPrecompiledSource, |
+ RenderValue(values.precompiled_source())); |
} |
} |
@@ -185,14 +186,14 @@ class ConfigDescBuilder : public BaseDescBuilder { |
const ConfigValues& values = config_->resolved_values(); |
if (what_.empty()) |
- res->SetString( |
+ res->SetStringWithoutPathExpansion( |
"toolchain", |
config_->label().GetToolchainLabel().GetUserVisibleName(false)); |
if (what(variables::kConfigs) && !config_->configs().empty()) { |
auto configs = base::MakeUnique<base::ListValue>(); |
FillInConfigVector(configs.get(), config_->configs().vector()); |
- res->Set(variables::kConfigs, std::move(configs)); |
+ res->SetWithoutPathExpansion(variables::kConfigs, std::move(configs)); |
} |
#define CONFIG_VALUE_ARRAY_HANDLER(name, type) \ |
@@ -200,7 +201,7 @@ class ConfigDescBuilder : public BaseDescBuilder { |
ValuePtr ptr = \ |
render_config_value_array<type>(values, &ConfigValues::name); \ |
if (ptr) { \ |
- res->Set(#name, std::move(ptr)); \ |
+ res->SetWithoutPathExpansion(#name, std::move(ptr)); \ |
} \ |
} |
CONFIG_VALUE_ARRAY_HANDLER(arflags, std::string) |
@@ -258,93 +259,108 @@ class TargetDescBuilder : public BaseDescBuilder { |
bool is_binary_output = target_->IsBinary(); |
if (what_.empty()) { |
- res->SetString("type", |
- Target::GetStringForOutputType(target_->output_type())); |
- res->SetString( |
+ res->SetStringWithoutPathExpansion( |
+ "type", |
+ Target::GetStringForOutputType(target_->output_type())); |
+ res->SetStringWithoutPathExpansion( |
"toolchain", |
target_->label().GetToolchainLabel().GetUserVisibleName(false)); |
} |
// General target meta variables. |
if (what(variables::kVisibility)) |
- res->Set(variables::kVisibility, target_->visibility().AsValue()); |
+ res->SetWithoutPathExpansion(variables::kVisibility, |
+ target_->visibility().AsValue()); |
if (what(variables::kTestonly)) |
- res->SetBoolean(variables::kTestonly, target_->testonly()); |
+ res->SetBooleanWithoutPathExpansion(variables::kTestonly, |
+ target_->testonly()); |
if (is_binary_output) { |
if (what(variables::kCheckIncludes)) |
- res->SetBoolean(variables::kCheckIncludes, target_->check_includes()); |
+ res->SetBooleanWithoutPathExpansion(variables::kCheckIncludes, |
+ target_->check_includes()); |
if (what(variables::kAllowCircularIncludesFrom)) { |
auto labels = base::MakeUnique<base::ListValue>(); |
for (const auto& cur : target_->allow_circular_includes_from()) |
labels->AppendString(cur.GetUserVisibleName(GetToolchainLabel())); |
- res->Set(variables::kAllowCircularIncludesFrom, std::move(labels)); |
+ res->SetWithoutPathExpansion(variables::kAllowCircularIncludesFrom, |
+ std::move(labels)); |
} |
} |
if (what(variables::kSources) && !target_->sources().empty()) |
- res->Set(variables::kSources, RenderValue(target_->sources())); |
+ res->SetWithoutPathExpansion(variables::kSources, |
+ RenderValue(target_->sources())); |
if (what(variables::kOutputName) && !target_->output_name().empty()) |
- res->SetString(variables::kOutputName, target_->output_name()); |
+ res->SetStringWithoutPathExpansion(variables::kOutputName, |
+ target_->output_name()); |
if (what(variables::kOutputDir) && !target_->output_dir().is_null()) |
- res->Set(variables::kOutputDir, RenderValue(target_->output_dir())); |
+ res->SetWithoutPathExpansion(variables::kOutputDir, |
+ RenderValue(target_->output_dir())); |
if (what(variables::kOutputExtension) && target_->output_extension_set()) |
- res->SetString(variables::kOutputExtension, target_->output_extension()); |
+ res->SetStringWithoutPathExpansion(variables::kOutputExtension, |
+ target_->output_extension()); |
if (what(variables::kPublic)) { |
if (target_->all_headers_public()) |
- res->SetString(variables::kPublic, "*"); |
+ res->SetStringWithoutPathExpansion(variables::kPublic, "*"); |
else |
- res->Set(variables::kPublic, RenderValue(target_->public_headers())); |
+ res->SetWithoutPathExpansion(variables::kPublic, |
+ RenderValue(target_->public_headers())); |
} |
if (what(variables::kInputs) && !target_->inputs().empty()) |
- res->Set(variables::kInputs, RenderValue(target_->inputs())); |
+ res->SetWithoutPathExpansion(variables::kInputs, |
+ RenderValue(target_->inputs())); |
if (is_binary_output && what(variables::kConfigs) && |
!target_->configs().empty()) { |
auto configs = base::MakeUnique<base::ListValue>(); |
FillInConfigVector(configs.get(), target_->configs().vector()); |
- res->Set(variables::kConfigs, std::move(configs)); |
+ res->SetWithoutPathExpansion(variables::kConfigs, std::move(configs)); |
} |
if (what(variables::kPublicConfigs) && !target_->public_configs().empty()) { |
auto configs = base::MakeUnique<base::ListValue>(); |
FillInConfigVector(configs.get(), target_->public_configs()); |
- res->Set(variables::kPublicConfigs, std::move(configs)); |
+ res->SetWithoutPathExpansion(variables::kPublicConfigs, |
+ std::move(configs)); |
} |
if (what(variables::kAllDependentConfigs) && |
!target_->all_dependent_configs().empty()) { |
auto configs = base::MakeUnique<base::ListValue>(); |
FillInConfigVector(configs.get(), target_->all_dependent_configs()); |
- res->Set(variables::kAllDependentConfigs, std::move(configs)); |
+ res->SetWithoutPathExpansion(variables::kAllDependentConfigs, |
+ std::move(configs)); |
} |
// Action |
if (target_->output_type() == Target::ACTION || |
target_->output_type() == Target::ACTION_FOREACH) { |
if (what(variables::kScript)) |
- res->SetString(variables::kScript, |
- target_->action_values().script().value()); |
+ res->SetStringWithoutPathExpansion( |
+ variables::kScript, |
+ target_->action_values().script().value()); |
if (what(variables::kArgs)) { |
auto args = base::MakeUnique<base::ListValue>(); |
for (const auto& elem : target_->action_values().args().list()) |
args->AppendString(elem.AsString()); |
- res->Set(variables::kArgs, std::move(args)); |
+ res->SetWithoutPathExpansion(variables::kArgs, std::move(args)); |
} |
if (what(variables::kDepfile) && |
!target_->action_values().depfile().empty()) { |
- res->SetString(variables::kDepfile, |
- target_->action_values().depfile().AsString()); |
+ res->SetStringWithoutPathExpansion( |
+ variables::kDepfile, |
+ target_->action_values().depfile().AsString()); |
} |
} |
@@ -367,7 +383,7 @@ class TargetDescBuilder : public BaseDescBuilder { |
if (what(#name)) { \ |
ValuePtr ptr = RenderConfigValues<type>(&ConfigValues::name); \ |
if (ptr) { \ |
- res->Set(#name, std::move(ptr)); \ |
+ res->SetWithoutPathExpansion(#name, std::move(ptr)); \ |
} \ |
} |
CONFIG_VALUE_ARRAY_HANDLER(arflags, std::string) |
@@ -388,12 +404,12 @@ class TargetDescBuilder : public BaseDescBuilder { |
} |
if (what(variables::kDeps)) |
- res->Set(variables::kDeps, RenderDeps()); |
+ res->SetWithoutPathExpansion(variables::kDeps, RenderDeps()); |
// Runtime deps are special, print only when explicitly asked for and not in |
// overview mode. |
if (what_.find("runtime_deps") != what_.end()) |
- res->Set("runtime_deps", RenderRuntimeDeps()); |
+ res->SetWithoutPathExpansion("runtime_deps", RenderRuntimeDeps()); |
// libs and lib_dirs are special in that they're inherited. We don't |
// currently |
@@ -408,7 +424,7 @@ class TargetDescBuilder : public BaseDescBuilder { |
auto libs = base::MakeUnique<base::ListValue>(); |
for (size_t i = 0; i < all_libs.size(); i++) |
libs->AppendString(all_libs[i].value()); |
- res->Set(variables::kLibs, std::move(libs)); |
+ res->SetWithoutPathExpansion(variables::kLibs, std::move(libs)); |
} |
} |
@@ -418,7 +434,7 @@ class TargetDescBuilder : public BaseDescBuilder { |
auto lib_dirs = base::MakeUnique<base::ListValue>(); |
for (size_t i = 0; i < all_lib_dirs.size(); i++) |
lib_dirs->AppendString(FormatSourceDir(all_lib_dirs[i])); |
- res->Set(variables::kLibDirs, std::move(lib_dirs)); |
+ res->SetWithoutPathExpansion(variables::kLibDirs, std::move(lib_dirs)); |
} |
} |
@@ -544,7 +560,7 @@ class TargetDescBuilder : public BaseDescBuilder { |
dict->SetWithoutPathExpansion(source.value(), std::move(list)); |
} |
} |
- res->Set("source_outputs", std::move(dict)); |
+ res->SetWithoutPathExpansion("source_outputs", std::move(dict)); |
} |
void FillInBundle(base::DictionaryValue* res) { |
@@ -553,21 +569,27 @@ class TargetDescBuilder : public BaseDescBuilder { |
const Settings* settings = target_->settings(); |
BundleData::SourceFiles sources; |
bundle_data.GetSourceFiles(&sources); |
- data->Set("source_files", RenderValue(sources)); |
- data->SetString("root_dir_output", |
- bundle_data.GetBundleRootDirOutput(settings).value()); |
- data->Set("root_dir", RenderValue(bundle_data.root_dir())); |
- data->Set("resources_dir", RenderValue(bundle_data.resources_dir())); |
- data->Set("executable_dir", RenderValue(bundle_data.executable_dir())); |
- data->Set("plugins_dir", RenderValue(bundle_data.plugins_dir())); |
- data->SetString("product_type", bundle_data.product_type()); |
+ data->SetWithoutPathExpansion("source_files", RenderValue(sources)); |
+ data->SetStringWithoutPathExpansion( |
+ "root_dir_output", |
+ bundle_data.GetBundleRootDirOutput(settings).value()); |
+ data->SetWithoutPathExpansion("root_dir", |
+ RenderValue(bundle_data.root_dir())); |
+ data->SetWithoutPathExpansion("resources_dir", |
+ RenderValue(bundle_data.resources_dir())); |
+ data->SetWithoutPathExpansion("executable_dir", |
+ RenderValue(bundle_data.executable_dir())); |
+ data->SetWithoutPathExpansion("plugins_dir", |
+ RenderValue(bundle_data.plugins_dir())); |
+ data->SetStringWithoutPathExpansion("product_type", |
+ bundle_data.product_type()); |
auto deps = base::MakeUnique<base::ListValue>(); |
for (const auto* dep : bundle_data.bundle_deps()) |
deps->AppendString(dep->label().GetUserVisibleName(GetToolchainLabel())); |
- data->Set("deps", std::move(deps)); |
- res->Set("bundle_data", std::move(data)); |
+ data->SetWithoutPathExpansion("deps", std::move(deps)); |
+ res->SetWithoutPathExpansion("bundle_data", std::move(data)); |
} |
void FillInOutputs(base::DictionaryValue* res) { |
@@ -576,12 +598,13 @@ class TargetDescBuilder : public BaseDescBuilder { |
for (const auto& elem : target_->action_values().outputs().list()) |
list->AppendString(elem.AsString()); |
- res->Set(variables::kOutputs, std::move(list)); |
+ res->SetWithoutPathExpansion(variables::kOutputs, std::move(list)); |
} else if (target_->output_type() == Target::CREATE_BUNDLE) { |
std::vector<SourceFile> output_files; |
target_->bundle_data().GetOutputsAsSourceFiles(target_->settings(), |
&output_files); |
- res->Set(variables::kOutputs, RenderValue(output_files)); |
+ res->SetWithoutPathExpansion(variables::kOutputs, |
+ RenderValue(output_files)); |
} else if (target_->output_type() == Target::ACTION_FOREACH || |
target_->output_type() == Target::COPY_FILES) { |
const SubstitutionList& outputs = target_->action_values().outputs(); |
@@ -590,12 +613,13 @@ class TargetDescBuilder : public BaseDescBuilder { |
for (const auto& elem : outputs.list()) |
patterns->AppendString(elem.AsString()); |
- res->Set("output_patterns", std::move(patterns)); |
+ res->SetWithoutPathExpansion("output_patterns", std::move(patterns)); |
} |
std::vector<SourceFile> output_files; |
SubstitutionWriter::ApplyListToSources(target_->settings(), outputs, |
target_->sources(), &output_files); |
- res->Set(variables::kOutputs, RenderValue(output_files)); |
+ res->SetWithoutPathExpansion(variables::kOutputs, |
+ RenderValue(output_files)); |
} else { |
DCHECK(target_->IsBinary()); |
const Tool* tool = |
@@ -609,7 +633,8 @@ class TargetDescBuilder : public BaseDescBuilder { |
output_files_as_source_file.push_back( |
output_file.AsSourceFile(target_->settings()->build_settings())); |
- res->Set(variables::kOutputs, RenderValue(output_files_as_source_file)); |
+ res->SetWithoutPathExpansion(variables::kOutputs, |
+ RenderValue(output_files_as_source_file)); |
} |
} |