diff options
author | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2024-05-16 11:24:14 +0200 |
---|---|---|
committer | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2024-05-17 10:36:13 +0200 |
commit | 580539ab08a098e7f348fee3c46fbf5d44cd4d54 (patch) | |
tree | b73f35182abf0b278ba435925a6cc01381705fc4 /src | |
parent | 0f96e596f42ef8619f173c547d7ee6c1be3aba12 (diff) | |
download | justbuild-580539ab08a098e7f348fee3c46fbf5d44cd4d54.tar.gz |
RepositoryConfig: Instance should not be changed once populated
Once a RepositoryConfig instance gets populated, it must never be
changed again. Therefore, all functions accepting these instances
should only take them as pointers to const.
Diffstat (limited to 'src')
31 files changed, 94 insertions, 87 deletions
diff --git a/src/buildtool/build_engine/base_maps/directory_map.cpp b/src/buildtool/build_engine/base_maps/directory_map.cpp index be77dee3..809a8788 100644 --- a/src/buildtool/build_engine/base_maps/directory_map.cpp +++ b/src/buildtool/build_engine/base_maps/directory_map.cpp @@ -21,7 +21,7 @@ #include "src/utils/cpp/path.hpp" auto BuildMaps::Base::CreateDirectoryEntriesMap( - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, std::size_t jobs) -> DirectoryEntriesMap { auto directory_reader = [repo_config](auto /* unused*/, auto setter, diff --git a/src/buildtool/build_engine/base_maps/directory_map.hpp b/src/buildtool/build_engine/base_maps/directory_map.hpp index 1b927da9..59f17da1 100644 --- a/src/buildtool/build_engine/base_maps/directory_map.hpp +++ b/src/buildtool/build_engine/base_maps/directory_map.hpp @@ -32,7 +32,7 @@ using DirectoryEntriesMap = AsyncMapConsumer<ModuleName, FileRoot::DirectoryEntries>; auto CreateDirectoryEntriesMap( - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, std::size_t jobs = 0) -> DirectoryEntriesMap; } // namespace BuildMaps::Base diff --git a/src/buildtool/build_engine/base_maps/entity_name.hpp b/src/buildtool/build_engine/base_maps/entity_name.hpp index 65722189..397a82f0 100644 --- a/src/buildtool/build_engine/base_maps/entity_name.hpp +++ b/src/buildtool/build_engine/base_maps/entity_name.hpp @@ -183,7 +183,7 @@ template <typename T> T const& list, std::size_t const list_size, EntityName const& current, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, std::optional<std::function<void(std::string const&)>> logger = std::nullopt) noexcept -> std::optional<EntityName> { try { @@ -214,7 +214,7 @@ template <typename T> T const& list, std::size_t const list_size, EntityName const& current, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, std::optional<std::function<void(std::string const&)>> logger = std::nullopt) noexcept -> std::optional<EntityName> { try { @@ -252,7 +252,7 @@ template <typename T> [[nodiscard]] inline auto ParseEntityName( T const& source, EntityName const& current, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, std::optional<std::function<void(std::string const&)>> logger = std::nullopt) noexcept -> std::optional<EntityName> { try { @@ -285,7 +285,7 @@ template <typename T> [[nodiscard]] inline auto ParseEntityNameFromJson( nlohmann::json const& json, EntityName const& current, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, std::optional<std::function<void(std::string const&)>> logger = std::nullopt) noexcept -> std::optional<EntityName> { return ParseEntityName(json, current, repo_config, std::move(logger)); @@ -294,7 +294,7 @@ template <typename T> [[nodiscard]] inline auto ParseEntityNameFromExpression( ExpressionPtr const& expr, EntityName const& current, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, std::optional<std::function<void(std::string const&)>> logger = std::nullopt) noexcept -> std::optional<EntityName> { return ParseEntityName(expr, current, repo_config, std::move(logger)); diff --git a/src/buildtool/build_engine/base_maps/expression_map.cpp b/src/buildtool/build_engine/base_maps/expression_map.cpp index 06db646a..02a875cc 100644 --- a/src/buildtool/build_engine/base_maps/expression_map.cpp +++ b/src/buildtool/build_engine/base_maps/expression_map.cpp @@ -23,9 +23,10 @@ namespace BuildMaps::Base { -auto CreateExpressionMap(gsl::not_null<ExpressionFileMap*> const& expr_file_map, - gsl::not_null<RepositoryConfig*> const& repo_config, - std::size_t jobs) -> ExpressionFunctionMap { +auto CreateExpressionMap( + gsl::not_null<ExpressionFileMap*> const& expr_file_map, + gsl::not_null<const RepositoryConfig*> const& repo_config, + std::size_t jobs) -> ExpressionFunctionMap { auto expr_func_creator = [expr_file_map, repo_config](auto ts, auto setter, auto logger, diff --git a/src/buildtool/build_engine/base_maps/expression_map.hpp b/src/buildtool/build_engine/base_maps/expression_map.hpp index c7259bfd..ceb2cf2f 100644 --- a/src/buildtool/build_engine/base_maps/expression_map.hpp +++ b/src/buildtool/build_engine/base_maps/expression_map.hpp @@ -41,9 +41,10 @@ constexpr auto CreateExpressionFileMap = using ExpressionFunctionMap = AsyncMapConsumer<EntityName, ExpressionFunctionPtr>; -auto CreateExpressionMap(gsl::not_null<ExpressionFileMap*> const& expr_file_map, - gsl::not_null<RepositoryConfig*> const& repo_config, - std::size_t jobs = 0) -> ExpressionFunctionMap; +auto CreateExpressionMap( + gsl::not_null<ExpressionFileMap*> const& expr_file_map, + gsl::not_null<const RepositoryConfig*> const& repo_config, + std::size_t jobs = 0) -> ExpressionFunctionMap; // use explicit cast to std::function to allow template deduction when used static const std::function<std::string(EntityName const&)> kEntityNamePrinter = diff --git a/src/buildtool/build_engine/base_maps/field_reader.hpp b/src/buildtool/build_engine/base_maps/field_reader.hpp index 8c1c0f23..f66c0b1b 100644 --- a/src/buildtool/build_engine/base_maps/field_reader.hpp +++ b/src/buildtool/build_engine/base_maps/field_reader.hpp @@ -175,7 +175,7 @@ class FieldReader { [[nodiscard]] auto ReadEntityAliasesObject( std::string const& field_name, - gsl::not_null<RepositoryConfig*> const& repo_config) const + gsl::not_null<const RepositoryConfig*> const& repo_config) const -> std::optional<EntityAliases> { auto const& map = GetOrDefault(json_, field_name, nlohmann::json::object()); diff --git a/src/buildtool/build_engine/base_maps/json_file_map.hpp b/src/buildtool/build_engine/base_maps/json_file_map.hpp index 4e1ebf70..ad697ac9 100644 --- a/src/buildtool/build_engine/base_maps/json_file_map.hpp +++ b/src/buildtool/build_engine/base_maps/json_file_map.hpp @@ -41,8 +41,9 @@ using FileNameGetter = auto (RepositoryConfig::*)(std::string const&) const -> std::string const*; template <RootGetter get_root, FileNameGetter get_name, bool kMandatory = true> -auto CreateJsonFileMap(gsl::not_null<RepositoryConfig*> const& repo_config, - std::size_t jobs) -> JsonFileMap { +auto CreateJsonFileMap( + gsl::not_null<const RepositoryConfig*> const& repo_config, + std::size_t jobs) -> JsonFileMap { auto json_file_reader = [repo_config](auto /* unused */, auto setter, auto logger, diff --git a/src/buildtool/build_engine/base_maps/rule_map.cpp b/src/buildtool/build_engine/base_maps/rule_map.cpp index 19b1ed80..15999d01 100644 --- a/src/buildtool/build_engine/base_maps/rule_map.cpp +++ b/src/buildtool/build_engine/base_maps/rule_map.cpp @@ -46,7 +46,7 @@ auto const kRuleFields = std::unordered_set<std::string>{"anonymous", [[nodiscard]] auto ReadAnonymousObject( EntityName const& id, nlohmann::json const& json, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, AsyncMapConsumerLoggerPtr const& logger) -> std::optional<UserRule::anonymous_defs_t> { auto obj = GetOrDefault(json, "anonymous", nlohmann::json::object()); @@ -154,7 +154,7 @@ auto const kRuleFields = std::unordered_set<std::string>{"anonymous", [[nodiscard]] auto ReadImplicitObject( EntityName const& id, nlohmann::json const& json, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, AsyncMapConsumerLoggerPtr const& logger) -> std::optional<UserRule::implicit_t> { auto map = GetOrDefault(json, "implicit", nlohmann::json::object()); @@ -242,7 +242,7 @@ auto const kRuleFields = std::unordered_set<std::string>{"anonymous", auto CreateRuleMap(gsl::not_null<RuleFileMap*> const& rule_file_map, gsl::not_null<ExpressionFunctionMap*> const& expr_map, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, std::size_t jobs) -> UserRuleMap { auto user_rule_creator = [rule_file_map, expr_map, repo_config]( auto ts, diff --git a/src/buildtool/build_engine/base_maps/rule_map.hpp b/src/buildtool/build_engine/base_maps/rule_map.hpp index efc049cc..867f4c38 100644 --- a/src/buildtool/build_engine/base_maps/rule_map.hpp +++ b/src/buildtool/build_engine/base_maps/rule_map.hpp @@ -42,7 +42,7 @@ using UserRuleMap = AsyncMapConsumer<EntityName, UserRulePtr>; auto CreateRuleMap(gsl::not_null<RuleFileMap*> const& rule_file_map, gsl::not_null<ExpressionFunctionMap*> const& expr_map, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, std::size_t jobs = 0) -> UserRuleMap; } // namespace BuildMaps::Base diff --git a/src/buildtool/build_engine/base_maps/source_map.cpp b/src/buildtool/build_engine/base_maps/source_map.cpp index cc0611bd..4ca726cb 100644 --- a/src/buildtool/build_engine/base_maps/source_map.cpp +++ b/src/buildtool/build_engine/base_maps/source_map.cpp @@ -46,9 +46,10 @@ auto as_target(const BuildMaps::Base::EntityName& key, ExpressionPtr artifact) } // namespace -auto CreateSourceTargetMap(const gsl::not_null<DirectoryEntriesMap*>& dirs, - gsl::not_null<RepositoryConfig*> const& repo_config, - std::size_t jobs) -> SourceTargetMap { +auto CreateSourceTargetMap( + const gsl::not_null<DirectoryEntriesMap*>& dirs, + gsl::not_null<const RepositoryConfig*> const& repo_config, + std::size_t jobs) -> SourceTargetMap { auto src_target_reader = [dirs, repo_config](auto ts, auto setter, auto logger, diff --git a/src/buildtool/build_engine/base_maps/source_map.hpp b/src/buildtool/build_engine/base_maps/source_map.hpp index 9e703ff3..97088d9d 100644 --- a/src/buildtool/build_engine/base_maps/source_map.hpp +++ b/src/buildtool/build_engine/base_maps/source_map.hpp @@ -32,9 +32,10 @@ namespace BuildMaps::Base { using SourceTargetMap = AsyncMapConsumer<EntityName, AnalysedTargetPtr>; -auto CreateSourceTargetMap(const gsl::not_null<DirectoryEntriesMap*>& dirs, - gsl::not_null<RepositoryConfig*> const& repo_config, - std::size_t jobs = 0) -> SourceTargetMap; +auto CreateSourceTargetMap( + const gsl::not_null<DirectoryEntriesMap*>& dirs, + gsl::not_null<const RepositoryConfig*> const& repo_config, + std::size_t jobs = 0) -> SourceTargetMap; } // namespace BuildMaps::Base diff --git a/src/buildtool/build_engine/target_map/absent_target_map.cpp b/src/buildtool/build_engine/target_map/absent_target_map.cpp index bd5c17a2..7cfbc160 100644 --- a/src/buildtool/build_engine/target_map/absent_target_map.cpp +++ b/src/buildtool/build_engine/target_map/absent_target_map.cpp @@ -31,7 +31,7 @@ namespace { void WithFlexibleVariables( const BuildMaps::Target::ConfiguredTarget& key, std::vector<std::string> flexible_vars, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, const BuildMaps::Target::AbsentTargetMap::SubCallerPtr& subcaller, const BuildMaps::Target::AbsentTargetMap::SetterPtr& setter, const BuildMaps::Target::AbsentTargetMap::LoggerPtr& logger, @@ -217,7 +217,7 @@ auto BuildMaps::Target::CreateAbsentTargetVariablesMap(std::size_t jobs) auto BuildMaps::Target::CreateAbsentTargetMap( const gsl::not_null<ResultTargetMap*>& result_map, const gsl::not_null<AbsentTargetVariablesMap*>& absent_variables, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, gsl::not_null<Statistics*> const& stats, gsl::not_null<Progress*> const& exports_progress, std::size_t jobs, diff --git a/src/buildtool/build_engine/target_map/absent_target_map.hpp b/src/buildtool/build_engine/target_map/absent_target_map.hpp index 4980519a..65416e68 100644 --- a/src/buildtool/build_engine/target_map/absent_target_map.hpp +++ b/src/buildtool/build_engine/target_map/absent_target_map.hpp @@ -53,14 +53,15 @@ using ServeFailureLogReporter = auto CreateAbsentTargetVariablesMap(std::size_t jobs = 0) -> AbsentTargetVariablesMap; -auto CreateAbsentTargetMap(const gsl::not_null<ResultTargetMap*>&, - const gsl::not_null<AbsentTargetVariablesMap*>&, - gsl::not_null<RepositoryConfig*> const& repo_config, - gsl::not_null<Statistics*> const& stats, - gsl::not_null<Progress*> const& exports_progress, - std::size_t jobs = 0, - ServeFailureLogReporter* serve_failure_reporter = - nullptr) -> AbsentTargetMap; +auto CreateAbsentTargetMap( + const gsl::not_null<ResultTargetMap*>&, + const gsl::not_null<AbsentTargetVariablesMap*>&, + gsl::not_null<const RepositoryConfig*> const& repo_config, + gsl::not_null<Statistics*> const& stats, + gsl::not_null<Progress*> const& exports_progress, + std::size_t jobs = 0, + ServeFailureLogReporter* serve_failure_reporter = nullptr) + -> AbsentTargetMap; } // namespace BuildMaps::Target diff --git a/src/buildtool/build_engine/target_map/built_in_rules.cpp b/src/buildtool/build_engine/target_map/built_in_rules.cpp index 641c6a71..21292b3f 100644 --- a/src/buildtool/build_engine/target_map/built_in_rules.cpp +++ b/src/buildtool/build_engine/target_map/built_in_rules.cpp @@ -123,7 +123,7 @@ void BlobGenRuleWithDeps( const std::vector<AnalysedTargetPtr const*>& dependency_values, const BuildMaps::Base::FieldReader::Ptr& desc, const BuildMaps::Target::ConfiguredTarget& key, - const gsl::not_null<RepositoryConfig*>& repo_config, + const gsl::not_null<const RepositoryConfig*>& repo_config, const BuildMaps::Target::TargetMap::SetterPtr& setter, const BuildMaps::Target::TargetMap::LoggerPtr& logger, const gsl::not_null<BuildMaps::Target::ResultTargetMap*>& result_map, @@ -289,7 +289,7 @@ void BlobGenRuleWithDeps( void BlobGenRule( const nlohmann::json& desc_json, const BuildMaps::Target::ConfiguredTarget& key, - const gsl::not_null<RepositoryConfig*>& repo_config, + const gsl::not_null<const RepositoryConfig*>& repo_config, const BuildMaps::Target::TargetMap::SubCallerPtr& subcaller, const BuildMaps::Target::TargetMap::SetterPtr& setter, const BuildMaps::Target::TargetMap::LoggerPtr& logger, @@ -378,7 +378,7 @@ void BlobGenRule( void FileGenRule( const nlohmann::json& desc_json, const BuildMaps::Target::ConfiguredTarget& key, - const gsl::not_null<RepositoryConfig*>& repo_config, + const gsl::not_null<const RepositoryConfig*>& repo_config, [[maybe_unused]] const ActiveTargetCache& /*target_cache*/, [[maybe_unused]] const gsl::not_null<Statistics*>& /*stats*/, [[maybe_unused]] const gsl::not_null<Progress*>& /*exports_progress*/, @@ -399,7 +399,7 @@ void FileGenRule( void SymlinkRule( const nlohmann::json& desc_json, const BuildMaps::Target::ConfiguredTarget& key, - const gsl::not_null<RepositoryConfig*>& repo_config, + const gsl::not_null<const RepositoryConfig*>& repo_config, [[maybe_unused]] const ActiveTargetCache& /*target_cache*/, [[maybe_unused]] const gsl::not_null<Statistics*>& /*stats*/, [[maybe_unused]] const gsl::not_null<Progress*>& /*exports_progress*/, @@ -537,7 +537,7 @@ void TreeRuleWithDeps( void TreeRule( const nlohmann::json& desc_json, const BuildMaps::Target::ConfiguredTarget& key, - const gsl::not_null<RepositoryConfig*>& repo_config, + const gsl::not_null<const RepositoryConfig*>& repo_config, [[maybe_unused]] const ActiveTargetCache& /*target_cache*/, [[maybe_unused]] const gsl::not_null<Statistics*>& /*stats*/, [[maybe_unused]] const gsl::not_null<Progress*>& /*exports_progress*/, @@ -799,7 +799,7 @@ void InstallRuleWithDeps( void InstallRule( const nlohmann::json& desc_json, const BuildMaps::Target::ConfiguredTarget& key, - const gsl::not_null<RepositoryConfig*>& repo_config, + const gsl::not_null<const RepositoryConfig*>& repo_config, [[maybe_unused]] const ActiveTargetCache& /*target_cache*/, [[maybe_unused]] const gsl::not_null<Statistics*>& /*stats*/, [[maybe_unused]] const gsl::not_null<Progress*>& /*exports_progress*/, @@ -987,7 +987,7 @@ void GenericRuleWithDeps( const std::vector<AnalysedTargetPtr const*>& dependency_values, const BuildMaps::Base::FieldReader::Ptr& desc, const BuildMaps::Target::ConfiguredTarget& key, - const gsl::not_null<RepositoryConfig*>& repo_config, + const gsl::not_null<const RepositoryConfig*>& repo_config, const BuildMaps::Target::TargetMap::SetterPtr& setter, const BuildMaps::Target::TargetMap::LoggerPtr& logger, const gsl::not_null<BuildMaps::Target::ResultTargetMap*>& result_map) { @@ -1387,7 +1387,7 @@ void GenericRuleWithDeps( void GenericRule( const nlohmann::json& desc_json, const BuildMaps::Target::ConfiguredTarget& key, - const gsl::not_null<RepositoryConfig*>& repo_config, + const gsl::not_null<const RepositoryConfig*>& repo_config, [[maybe_unused]] const ActiveTargetCache& /*target_cache*/, [[maybe_unused]] const gsl::not_null<Statistics*>& /*stats*/, [[maybe_unused]] const gsl::not_null<Progress*>& /*exports_progress*/, @@ -1467,7 +1467,7 @@ void GenericRule( void ConfigureRule( const nlohmann::json& desc_json, const BuildMaps::Target::ConfiguredTarget& key, - const gsl::not_null<RepositoryConfig*>& repo_config, + const gsl::not_null<const RepositoryConfig*>& repo_config, [[maybe_unused]] const ActiveTargetCache& /*target_cache*/, [[maybe_unused]] const gsl::not_null<Statistics*>& /*stats*/, [[maybe_unused]] const gsl::not_null<Progress*>& /*exports_progress*/, @@ -1610,7 +1610,7 @@ auto const kBuiltIns = std::unordered_map< std::function<void( const nlohmann::json&, const BuildMaps::Target::ConfiguredTarget&, - const gsl::not_null<RepositoryConfig*>&, + const gsl::not_null<const RepositoryConfig*>&, const ActiveTargetCache&, const gsl::not_null<Statistics*>&, const gsl::not_null<Progress*>&, @@ -1643,7 +1643,7 @@ auto HandleBuiltin( const nlohmann::json& rule_type, const nlohmann::json& desc, const BuildMaps::Target::ConfiguredTarget& key, - const gsl::not_null<RepositoryConfig*>& repo_config, + const gsl::not_null<const RepositoryConfig*>& repo_config, const ActiveTargetCache& target_cache, const gsl::not_null<Statistics*>& stats, const gsl::not_null<Progress*>& exports_progress, diff --git a/src/buildtool/build_engine/target_map/built_in_rules.hpp b/src/buildtool/build_engine/target_map/built_in_rules.hpp index 8a0dedeb..2df85bc0 100644 --- a/src/buildtool/build_engine/target_map/built_in_rules.hpp +++ b/src/buildtool/build_engine/target_map/built_in_rules.hpp @@ -30,7 +30,7 @@ auto HandleBuiltin( const nlohmann::json& rule_type, const nlohmann::json& desc, const BuildMaps::Target::ConfiguredTarget& key, - const gsl::not_null<RepositoryConfig*>& repo_config, + const gsl::not_null<const RepositoryConfig*>& repo_config, const ActiveTargetCache& target_cache, const gsl::not_null<Statistics*>& stats, const gsl::not_null<Progress*>& exports_progress, diff --git a/src/buildtool/build_engine/target_map/export.cpp b/src/buildtool/build_engine/target_map/export.cpp index e92d4c9c..ca539d87 100644 --- a/src/buildtool/build_engine/target_map/export.cpp +++ b/src/buildtool/build_engine/target_map/export.cpp @@ -101,7 +101,7 @@ void FinalizeExport( void ExportRule( const nlohmann::json& desc_json, const BuildMaps::Target::ConfiguredTarget& key, - const gsl::not_null<RepositoryConfig*>& repo_config, + const gsl::not_null<const RepositoryConfig*>& repo_config, const ActiveTargetCache& target_cache, const gsl::not_null<Statistics*>& stats, const gsl::not_null<Progress*>& exports_progress, diff --git a/src/buildtool/build_engine/target_map/export.hpp b/src/buildtool/build_engine/target_map/export.hpp index 19cda908..1af92b6b 100644 --- a/src/buildtool/build_engine/target_map/export.hpp +++ b/src/buildtool/build_engine/target_map/export.hpp @@ -27,7 +27,7 @@ void ExportRule(const nlohmann::json& desc_json, const BuildMaps::Target::ConfiguredTarget& key, - const gsl::not_null<RepositoryConfig*>& repo_config, + const gsl::not_null<const RepositoryConfig*>& repo_config, const ActiveTargetCache& target_cache, const gsl::not_null<Statistics*>& stats, const gsl::not_null<Progress*>& exports_progress, diff --git a/src/buildtool/build_engine/target_map/target_map.cpp b/src/buildtool/build_engine/target_map/target_map.cpp index db0d5512..0c713cd7 100644 --- a/src/buildtool/build_engine/target_map/target_map.cpp +++ b/src/buildtool/build_engine/target_map/target_map.cpp @@ -309,7 +309,7 @@ void withDependencies( const BuildMaps::Base::UserRulePtr& rule, const TargetData::Ptr& data, const BuildMaps::Target::ConfiguredTarget& key, - const gsl::not_null<RepositoryConfig*>& repo_config, + const gsl::not_null<const RepositoryConfig*>& repo_config, std::unordered_map<std::string, ExpressionPtr> params, const BuildMaps::Target::TargetMap::SetterPtr& setter, const BuildMaps::Target::TargetMap::LoggerPtr& logger, @@ -994,7 +994,7 @@ void withRuleDefinition( const BuildMaps::Base::UserRulePtr& rule, const TargetData::Ptr& data, const BuildMaps::Target::ConfiguredTarget& key, - const gsl::not_null<RepositoryConfig*>& repo_config, + const gsl::not_null<const RepositoryConfig*>& repo_config, const BuildMaps::Target::TargetMap::SubCallerPtr& subcaller, const BuildMaps::Target::TargetMap::SetterPtr& setter, const BuildMaps::Target::TargetMap::LoggerPtr& logger, @@ -1350,7 +1350,7 @@ void withRuleDefinition( void withTargetsFile( const BuildMaps::Target::ConfiguredTarget& key, - const gsl::not_null<RepositoryConfig*>& repo_config, + const gsl::not_null<const RepositoryConfig*>& repo_config, const ActiveTargetCache& target_cache, const gsl::not_null<Statistics*>& stats, const gsl::not_null<Progress*>& exports_progress, @@ -1479,7 +1479,7 @@ void withTargetsFile( void withTargetNode( const BuildMaps::Target::ConfiguredTarget& key, - const gsl::not_null<RepositoryConfig*>& repo_config, + const gsl::not_null<const RepositoryConfig*>& repo_config, const gsl::not_null<BuildMaps::Base::UserRuleMap*>& rule_map, const gsl::not_null<TaskSystem*>& ts, const BuildMaps::Target::TargetMap::SubCallerPtr& subcaller, @@ -1777,7 +1777,7 @@ auto CreateTargetMap( directory_entries_map, const gsl::not_null<AbsentTargetMap*>& absent_target_map, const gsl::not_null<ResultTargetMap*>& result_map, - const gsl::not_null<RepositoryConfig*>& repo_config, + const gsl::not_null<const RepositoryConfig*>& repo_config, const ActiveTargetCache& target_cache, const gsl::not_null<Statistics*>& stats, const gsl::not_null<Progress*>& exports_progress, diff --git a/src/buildtool/build_engine/target_map/target_map.hpp b/src/buildtool/build_engine/target_map/target_map.hpp index 86b7aad7..0898a0c8 100644 --- a/src/buildtool/build_engine/target_map/target_map.hpp +++ b/src/buildtool/build_engine/target_map/target_map.hpp @@ -45,7 +45,7 @@ auto CreateTargetMap( const gsl::not_null<BuildMaps::Base::DirectoryEntriesMap*>&, const gsl::not_null<AbsentTargetMap*>&, const gsl::not_null<ResultTargetMap*>&, - const gsl::not_null<RepositoryConfig*>&, + const gsl::not_null<const RepositoryConfig*>&, const ActiveTargetCache&, const gsl::not_null<Statistics*>& stats, const gsl::not_null<Progress*>& exports_progress, diff --git a/src/buildtool/build_engine/target_map/utils.cpp b/src/buildtool/build_engine/target_map/utils.cpp index 924b3727..91269833 100644 --- a/src/buildtool/build_engine/target_map/utils.cpp +++ b/src/buildtool/build_engine/target_map/utils.cpp @@ -29,7 +29,7 @@ auto BuildMaps::Target::Utils::obtainTargetByName( const ExpressionPtr& expr, const Configuration& env, const Base::EntityName& current, - const gsl::not_null<RepositoryConfig*>& repo_config, + const gsl::not_null<const RepositoryConfig*>& repo_config, std::unordered_map<BuildMaps::Target::ConfiguredTarget, AnalysedTargetPtr> const& deps_by_transition) -> AnalysedTargetPtr { diff --git a/src/buildtool/build_engine/target_map/utils.hpp b/src/buildtool/build_engine/target_map/utils.hpp index b3fb5a7c..8db440c8 100644 --- a/src/buildtool/build_engine/target_map/utils.hpp +++ b/src/buildtool/build_engine/target_map/utils.hpp @@ -36,7 +36,7 @@ auto obtainTargetByName(const SubExprEvaluator&, const ExpressionPtr&, const Configuration&, const Base::EntityName&, - const gsl::not_null<RepositoryConfig*>&, + const gsl::not_null<const RepositoryConfig*>&, std::unordered_map<BuildMaps::Target::ConfiguredTarget, AnalysedTargetPtr> const&) -> AnalysedTargetPtr; diff --git a/src/buildtool/execution_api/common/create_execution_api.hpp b/src/buildtool/execution_api/common/create_execution_api.hpp index c62d0f17..5749a9c4 100644 --- a/src/buildtool/execution_api/common/create_execution_api.hpp +++ b/src/buildtool/execution_api/common/create_execution_api.hpp @@ -31,7 +31,7 @@ /// \param instance_name only used in the construction of the BazelApi object [[nodiscard]] static inline auto CreateExecutionApi( std::optional<ServerAddress> const& address, - std::optional<gsl::not_null<RepositoryConfig*>> const& repo_config = + std::optional<gsl::not_null<const RepositoryConfig*>> const& repo_config = std::nullopt, std::string const& instance_name = "remote-execution") -> gsl::not_null<IExecutionApi::Ptr> { diff --git a/src/buildtool/execution_api/git/git_api.hpp b/src/buildtool/execution_api/git/git_api.hpp index f4e1dbd3..56cd78ab 100644 --- a/src/buildtool/execution_api/git/git_api.hpp +++ b/src/buildtool/execution_api/git/git_api.hpp @@ -33,7 +33,7 @@ class GitApi final : public IExecutionApi { public: GitApi() = delete; - explicit GitApi(gsl::not_null<RepositoryConfig*> const& repo_config) + explicit GitApi(gsl::not_null<const RepositoryConfig*> const& repo_config) : repo_config_{repo_config} {} auto CreateAction( ArtifactDigest const& /*root_digest*/, @@ -311,7 +311,7 @@ class GitApi final : public IExecutionApi { } private: - gsl::not_null<RepositoryConfig*> repo_config_; + gsl::not_null<const RepositoryConfig*> repo_config_; }; #endif diff --git a/src/buildtool/execution_api/local/local_api.hpp b/src/buildtool/execution_api/local/local_api.hpp index fb76237d..f69a5be2 100644 --- a/src/buildtool/execution_api/local/local_api.hpp +++ b/src/buildtool/execution_api/local/local_api.hpp @@ -47,7 +47,7 @@ /// \brief API for local execution. class LocalApi final : public IExecutionApi { public: - explicit LocalApi(std::optional<gsl::not_null<RepositoryConfig*>> + explicit LocalApi(std::optional<gsl::not_null<const RepositoryConfig*>> repo_config = std::nullopt) : repo_config_{std::move(repo_config)} {} @@ -533,7 +533,7 @@ class LocalApi final : public IExecutionApi { } private: - std::optional<gsl::not_null<RepositoryConfig*>> repo_config_{}; + std::optional<gsl::not_null<const RepositoryConfig*>> repo_config_{}; gsl::not_null<Storage const*> storage_ = &Storage::Instance(); }; diff --git a/src/buildtool/execution_engine/executor/executor.hpp b/src/buildtool/execution_engine/executor/executor.hpp index f7afb077..37bdb32b 100644 --- a/src/buildtool/execution_engine/executor/executor.hpp +++ b/src/buildtool/execution_engine/executor/executor.hpp @@ -165,7 +165,7 @@ class ExecutorImpl { [[nodiscard]] static auto VerifyOrUploadArtifact( Logger const& logger, gsl::not_null<DependencyGraph::ArtifactNode const*> const& artifact, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, gsl::not_null<IExecutionApi*> const& remote_api, gsl::not_null<IExecutionApi*> const& local_api) noexcept -> bool { auto const object_info_opt = artifact->Content().Info(); @@ -328,7 +328,7 @@ class ExecutorImpl { [[nodiscard]] static auto VerifyOrUploadGitArtifact( gsl::not_null<IExecutionApi*> const& api, std::string const& repo, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, Artifact::ObjectInfo const& info, std::string const& hash) noexcept -> bool { std::optional<std::string> content; @@ -367,7 +367,7 @@ class ExecutorImpl { [[nodiscard]] static auto ReadGitBlob( std::string const& repo, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, std::string const& hash) noexcept -> std::optional<std::string> { std::optional<std::string> blob{}; if (auto const* ws_root = repo_config->WorkspaceRoot(repo)) { @@ -383,7 +383,7 @@ class ExecutorImpl { [[nodiscard]] static auto ReadGitTree( std::string const& repo, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, std::string const& hash) noexcept -> std::optional<GitTree> { std::optional<GitTree> tree{}; if (auto const* ws_root = repo_config->WorkspaceRoot(repo)) { @@ -406,7 +406,7 @@ class ExecutorImpl { [[nodiscard]] static auto VerifyOrUploadKnownArtifact( gsl::not_null<IExecutionApi*> const& api, std::string const& repo, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, Artifact::ObjectInfo const& info) noexcept -> bool { if (Compatibility::IsCompatible()) { auto opt = Compatibility::GetGitEntry(info.digest.hash()); @@ -430,7 +430,7 @@ class ExecutorImpl { [[nodiscard]] static auto UploadFile( gsl::not_null<IExecutionApi*> const& api, std::string const& repo, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, std::filesystem::path const& file_path) noexcept -> std::optional<Artifact::ObjectInfo> { auto const* ws_root = repo_config->WorkspaceRoot(repo); @@ -684,7 +684,7 @@ class Executor { public: explicit Executor( - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, gsl::not_null<IExecutionApi*> const& local_api, gsl::not_null<IExecutionApi*> const& remote_api, std::map<std::string, std::string> properties, @@ -770,7 +770,7 @@ class Executor { } private: - gsl::not_null<RepositoryConfig*> repo_config_; + gsl::not_null<const RepositoryConfig*> repo_config_; gsl::not_null<IExecutionApi*> local_api_; gsl::not_null<IExecutionApi*> remote_api_; std::map<std::string, std::string> properties_; @@ -794,7 +794,7 @@ class Rebuilder { /// \param properties Platform properties for execution. /// \param timeout Timeout for action execution. Rebuilder( - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, gsl::not_null<IExecutionApi*> const& local_api, gsl::not_null<IExecutionApi*> const& remote_api, gsl::not_null<IExecutionApi*> const& api_cached, @@ -882,7 +882,7 @@ class Rebuilder { } private: - gsl::not_null<RepositoryConfig*> repo_config_; + gsl::not_null<const RepositoryConfig*> repo_config_; gsl::not_null<IExecutionApi*> local_api_; gsl::not_null<IExecutionApi*> remote_api_; gsl::not_null<IExecutionApi*> api_cached_; diff --git a/src/buildtool/graph_traverser/graph_traverser.hpp b/src/buildtool/graph_traverser/graph_traverser.hpp index 5402a149..51b59361 100644 --- a/src/buildtool/graph_traverser/graph_traverser.hpp +++ b/src/buildtool/graph_traverser/graph_traverser.hpp @@ -74,7 +74,7 @@ class GraphTraverser { explicit GraphTraverser( CommandLineArguments clargs, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, std::map<std::string, std::string> platform_properties, std::vector<std::pair<std::map<std::string, std::string>, ServerAddress>> dispatch_list, @@ -94,7 +94,7 @@ class GraphTraverser { explicit GraphTraverser( CommandLineArguments clargs, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, std::map<std::string, std::string> platform_properties, std::vector<std::pair<std::map<std::string, std::string>, ServerAddress>> dispatch_list, @@ -255,7 +255,7 @@ class GraphTraverser { private: CommandLineArguments const clargs_; - gsl::not_null<RepositoryConfig*> repo_config_; + gsl::not_null<const RepositoryConfig*> repo_config_; std::map<std::string, std::string> platform_properties_; std::vector<std::pair<std::map<std::string, std::string>, ServerAddress>> dispatch_list_; diff --git a/src/buildtool/main/analyse.cpp b/src/buildtool/main/analyse.cpp index 678b5721..d93246f1 100644 --- a/src/buildtool/main/analyse.cpp +++ b/src/buildtool/main/analyse.cpp @@ -96,7 +96,7 @@ namespace Target = BuildMaps::Target; [[nodiscard]] auto AnalyseTarget( const Target::ConfiguredTarget& id, gsl::not_null<Target::ResultTargetMap*> const& result_map, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, ActiveTargetCache const& target_cache, gsl::not_null<Statistics*> const& stats, std::size_t jobs, diff --git a/src/buildtool/main/analyse.hpp b/src/buildtool/main/analyse.hpp index 267c99b8..7c0bbf1f 100644 --- a/src/buildtool/main/analyse.hpp +++ b/src/buildtool/main/analyse.hpp @@ -39,7 +39,7 @@ struct AnalysisResult { [[nodiscard]] auto AnalyseTarget( const BuildMaps::Target::ConfiguredTarget& id, gsl::not_null<BuildMaps::Target::ResultTargetMap*> const& result_map, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, ActiveTargetCache const& target_cache, gsl::not_null<Statistics*> const& stats, std::size_t jobs, diff --git a/src/buildtool/main/describe.cpp b/src/buildtool/main/describe.cpp index 659ec3ab..1fb861d5 100644 --- a/src/buildtool/main/describe.cpp +++ b/src/buildtool/main/describe.cpp @@ -59,9 +59,10 @@ void PrintFields(nlohmann::json const& fields, } } -void PrettyPrintRule(nlohmann::json const& rdesc, - BuildMaps::Base::EntityName const& rule_name, - gsl::not_null<RepositoryConfig*> const& repo_config) { +void PrettyPrintRule( + nlohmann::json const& rdesc, + BuildMaps::Base::EntityName const& rule_name, + gsl::not_null<const RepositoryConfig*> const& repo_config) { auto doc = rdesc.find("doc"); if (doc != rdesc.end()) { PrintDoc(*doc, " | "); @@ -228,7 +229,7 @@ void PrintRuleAsOrderedJson(nlohmann::json const& rdesc, auto DescribeUserDefinedRule( BuildMaps::Base::EntityName const& rule_name, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, std::size_t jobs, bool print_json) -> int { bool failed{}; @@ -266,7 +267,7 @@ auto DescribeUserDefinedRule( } auto DescribeTarget(BuildMaps::Target::ConfiguredTarget const& id, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, std::size_t jobs, bool print_json) -> int { #ifndef BOOTSTRAP_BUILD_TOOL diff --git a/src/buildtool/main/describe.hpp b/src/buildtool/main/describe.hpp index 7642e087..7e3c8f83 100644 --- a/src/buildtool/main/describe.hpp +++ b/src/buildtool/main/describe.hpp @@ -24,13 +24,13 @@ [[nodiscard]] auto DescribeTarget( BuildMaps::Target::ConfiguredTarget const& id, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, std::size_t jobs, bool print_json) -> int; [[nodiscard]] auto DescribeUserDefinedRule( BuildMaps::Base::EntityName const& rule_name, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, std::size_t jobs, bool print_json) -> int; diff --git a/src/buildtool/main/main.cpp b/src/buildtool/main/main.cpp index a5185a47..9f34122a 100644 --- a/src/buildtool/main/main.cpp +++ b/src/buildtool/main/main.cpp @@ -431,7 +431,7 @@ void SetupFileChunker() { [[nodiscard]] auto ReadConfiguredTarget( std::string const& main_repo, std::optional<std::filesystem::path> const& main_ws_root, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, AnalysisArguments const& clargs) -> Target::ConfiguredTarget { auto const* target_root = repo_config->TargetRoot(main_repo); if (target_root == nullptr) { @@ -760,7 +760,7 @@ void ReportTaintedness(const AnalysisResult& result) { auto DetermineNonExplicitTarget( std::string const& main_repo, std::optional<std::filesystem::path> const& main_ws_root, - gsl::not_null<RepositoryConfig*> const& repo_config, + gsl::not_null<const RepositoryConfig*> const& repo_config, AnalysisArguments const& clargs) -> std::optional<BuildMaps::Target::ConfiguredTarget> { auto id = |