summaryrefslogtreecommitdiff
path: root/src/buildtool/build_engine/base_maps/source_map.cpp
diff options
context:
space:
mode:
authorMaksim Denisov <denisov.maksim@huawei.com>2024-09-12 11:52:55 +0200
committerMaksim Denisov <denisov.maksim@huawei.com>2024-09-13 14:41:00 +0200
commit0be15127f1ecbd4010c657e908e62ed5f4b737dc (patch)
tree1e2897dc587018f4903e3e0c0783ffee0a158ac4 /src/buildtool/build_engine/base_maps/source_map.cpp
parent74498f0633d9039bbb7971efa33d4242cd724812 (diff)
downloadjustbuild-0be15127f1ecbd4010c657e908e62ed5f4b737dc.tar.gz
Pass HashFunction::Type to SourceTargetMap
...that is to be used by FileRoot::ToArtifactDescription.
Diffstat (limited to 'src/buildtool/build_engine/base_maps/source_map.cpp')
-rw-r--r--src/buildtool/build_engine/base_maps/source_map.cpp54
1 files changed, 29 insertions, 25 deletions
diff --git a/src/buildtool/build_engine/base_maps/source_map.cpp b/src/buildtool/build_engine/base_maps/source_map.cpp
index e47c59b1..8c716ac7 100644
--- a/src/buildtool/build_engine/base_maps/source_map.cpp
+++ b/src/buildtool/build_engine/base_maps/source_map.cpp
@@ -49,12 +49,13 @@ auto as_target(const BuildMaps::Base::EntityName& key,
auto CreateSourceTargetMap(
const gsl::not_null<DirectoryEntriesMap*>& dirs,
gsl::not_null<const RepositoryConfig*> const& repo_config,
+ HashFunction::Type hash_type,
std::size_t jobs) -> SourceTargetMap {
- auto src_target_reader = [dirs, repo_config](auto ts,
- auto setter,
- auto logger,
- auto /* unused */,
- auto const& key) {
+ auto src_target_reader = [dirs, repo_config, hash_type](auto ts,
+ auto setter,
+ auto logger,
+ auto /* unused */,
+ auto const& key) {
using std::filesystem::path;
const auto& target = key.GetNamedTarget();
auto name = path(target.name).lexically_normal();
@@ -68,27 +69,30 @@ auto CreateSourceTargetMap(
auto dir = (path(target.module) / name).parent_path();
auto const* ws_root = repo_config->WorkspaceRoot(target.repository);
- auto src_file_reader = [key, name, setter, logger, dir, ws_root](
- bool exists_in_ws_root) {
- if (ws_root != nullptr and exists_in_ws_root) {
- if (auto desc = ws_root->ToArtifactDescription(
- path(key.GetNamedTarget().module) / name,
- key.GetNamedTarget().repository)) {
- (*setter)(as_target(key, ExpressionPtr{std::move(*desc)}));
- return;
+ auto src_file_reader =
+ [key, name, setter, logger, dir, ws_root, hash_type](
+ bool exists_in_ws_root) {
+ if (ws_root != nullptr and exists_in_ws_root) {
+ if (auto desc = ws_root->ToArtifactDescription(
+ hash_type,
+ path(key.GetNamedTarget().module) / name,
+ key.GetNamedTarget().repository)) {
+ (*setter)(
+ as_target(key, ExpressionPtr{std::move(*desc)}));
+ return;
+ }
}
- }
- (*logger)(
- fmt::format(
- "Cannot determine source file {} in directory {} of "
- "repository {}",
- nlohmann::json(
- path(key.GetNamedTarget().name).filename().string())
- .dump(),
- nlohmann::json(dir.string()).dump(),
- nlohmann::json(key.GetNamedTarget().repository).dump()),
- true);
- };
+ (*logger)(
+ fmt::format(
+ "Cannot determine source file {} in directory {} of "
+ "repository {}",
+ nlohmann::json(
+ path(key.GetNamedTarget().name).filename().string())
+ .dump(),
+ nlohmann::json(dir.string()).dump(),
+ nlohmann::json(key.GetNamedTarget().repository).dump()),
+ true);
+ };
if (ws_root != nullptr and ws_root->HasFastDirectoryLookup()) {
// by-pass directory map and directly attempt to read from ws_root