void
Config::set_item(const std::string& key,
- const std::string& value,
+ const std::string& unexpanded_value,
const std::optional<std::string>& env_var_key,
bool negate,
const std::string& origin)
return;
}
+ std::string value = Util::expand_environment_variables(unexpanded_value);
+
switch (it->second.item) {
case ConfigItem::absolute_paths_in_stderr:
m_absolute_paths_in_stderr = parse_bool(value, env_var_key, negate);
break;
case ConfigItem::base_dir:
- m_base_dir = Util::expand_environment_variables(value);
+ m_base_dir = value;
if (!m_base_dir.empty()) { // The empty string means "disable"
verify_absolute_path(m_base_dir);
m_base_dir = Util::normalize_abstract_absolute_path(m_base_dir);
break;
case ConfigItem::cache_dir:
- set_cache_dir(Util::expand_environment_variables(value));
+ set_cache_dir(value);
break;
case ConfigItem::compiler:
break;
case ConfigItem::debug_dir:
- m_debug_dir = Util::expand_environment_variables(value);
+ m_debug_dir = value;
break;
case ConfigItem::depend_mode:
break;
case ConfigItem::extra_files_to_hash:
- m_extra_files_to_hash = Util::expand_environment_variables(value);
+ m_extra_files_to_hash = value;
break;
case ConfigItem::file_clone:
break;
case ConfigItem::ignore_headers_in_manifest:
- m_ignore_headers_in_manifest = Util::expand_environment_variables(value);
+ m_ignore_headers_in_manifest = value;
break;
case ConfigItem::ignore_options:
- m_ignore_options = Util::expand_environment_variables(value);
+ m_ignore_options = value;
break;
case ConfigItem::inode_cache:
break;
case ConfigItem::log_file:
- m_log_file = Util::expand_environment_variables(value);
+ m_log_file = value;
break;
case ConfigItem::max_files:
}
case ConfigItem::msvc_dep_prefix:
- m_msvc_dep_prefix = Util::expand_environment_variables(value);
+ m_msvc_dep_prefix = value;
break;
case ConfigItem::namespace_:
- m_namespace = Util::expand_environment_variables(value);
+ m_namespace = value;
break;
case ConfigItem::path:
- m_path = Util::expand_environment_variables(value);
+ m_path = value;
break;
case ConfigItem::pch_external_checksum:
break;
case ConfigItem::prefix_command:
- m_prefix_command = Util::expand_environment_variables(value);
+ m_prefix_command = value;
break;
case ConfigItem::prefix_command_cpp:
- m_prefix_command_cpp = Util::expand_environment_variables(value);
+ m_prefix_command_cpp = value;
break;
case ConfigItem::read_only:
break;
case ConfigItem::remote_storage:
- m_remote_storage = Util::expand_environment_variables(value);
+ m_remote_storage = value;
break;
case ConfigItem::reshare:
break;
case ConfigItem::stats_log:
- m_stats_log = Util::expand_environment_variables(value);
+ m_stats_log = value;
break;
case ConfigItem::temporary_dir:
- m_temporary_dir = Util::expand_environment_variables(value);
+ m_temporary_dir = value;
m_temporary_dir_configured_explicitly = true;
break;