diff options
author | Klaus Aehlig <klaus.aehlig@huawei.com> | 2025-04-08 11:35:24 +0200 |
---|---|---|
committer | Klaus Aehlig <klaus.aehlig@huawei.com> | 2025-04-08 13:05:58 +0200 |
commit | 29a296143913d12ff6a5b8a10e5904cd2c58cc29 (patch) | |
tree | 61ae9add85a1435e3a43661ba68fd05781f7ab18 /src | |
parent | e401d33c3266752aeb4cc4fc41b322df8ee3851b (diff) | |
download | justbuild-29a296143913d12ff6a5b8a10e5904cd2c58cc29.tar.gz |
Keep identifiers for actions, trees, and tree_overlays disjoint
While our traverser correctly keeps separate identifier spaces for
those entities, having disjoint identifiers allows easier reading
of log messages and more simple reporting of origins of actions.
Diffstat (limited to 'src')
-rw-r--r-- | src/buildtool/build_engine/target_map/utils.cpp | 1 | ||||
-rw-r--r-- | src/buildtool/common/TARGETS | 1 | ||||
-rw-r--r-- | src/buildtool/common/tree.hpp | 5 | ||||
-rw-r--r-- | src/buildtool/common/tree_overlay.hpp | 3 |
4 files changed, 8 insertions, 2 deletions
diff --git a/src/buildtool/build_engine/target_map/utils.cpp b/src/buildtool/build_engine/target_map/utils.cpp index 0ecda4ce..5bdeffe5 100644 --- a/src/buildtool/build_engine/target_map/utils.cpp +++ b/src/buildtool/build_engine/target_map/utils.cpp @@ -262,6 +262,7 @@ auto BuildMaps::Target::Utils::createAction( HashFunction hash_function{HashFunction::Type::PlainSHA256}; auto hasher = hash_function.MakeHasher(); + hasher.Update("ACTION:"); hasher.Update(hash_vector(hash_function, output_files)); hasher.Update(hash_vector(hash_function, output_dirs)); hasher.Update(hash_vector(hash_function, command)); diff --git a/src/buildtool/common/TARGETS b/src/buildtool/common/TARGETS index 19bad797..469f074f 100644 --- a/src/buildtool/common/TARGETS +++ b/src/buildtool/common/TARGETS @@ -153,6 +153,7 @@ [ "action_description" , "artifact_description" , "common" + , ["@", "fmt", "", "fmt"] , ["@", "json", "", "json"] , ["src/buildtool/crypto", "hash_function"] ] diff --git a/src/buildtool/common/tree.hpp b/src/buildtool/common/tree.hpp index c861b264..bf81d848 100644 --- a/src/buildtool/common/tree.hpp +++ b/src/buildtool/common/tree.hpp @@ -22,6 +22,7 @@ #include <unordered_map> #include <utility> +#include "fmt/core.h" #include "nlohmann/json.hpp" #include "src/buildtool/common/action.hpp" #include "src/buildtool/common/action_description.hpp" @@ -91,7 +92,9 @@ class Tree { // The type of HashFunction is irrelevant here. It is used for // identification of trees. SHA256 is used. HashFunction const hash_function{HashFunction::Type::PlainSHA256}; - return hash_function.PlainHashData(ComputeDescription(inputs).dump()) + return hash_function + .PlainHashData( + fmt::format("TREE:{}", ComputeDescription(inputs).dump())) .HexString(); } }; diff --git a/src/buildtool/common/tree_overlay.hpp b/src/buildtool/common/tree_overlay.hpp index 1b7faaed..69b992a2 100644 --- a/src/buildtool/common/tree_overlay.hpp +++ b/src/buildtool/common/tree_overlay.hpp @@ -103,7 +103,8 @@ class TreeOverlay { // identification of trees. SHA256 is used. HashFunction const hash_function{HashFunction::Type::PlainSHA256}; return hash_function - .PlainHashData(ComputeDescription(trees, disjoint).dump()) + .PlainHashData(fmt::format( + "TREE_OVERLAY:{}", ComputeDescription(trees, disjoint).dump())) .HexString(); } |