summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/buildtool/build_engine/analysed_target/TARGETS6
-rw-r--r--src/buildtool/build_engine/analysed_target/analysed_target.cpp1
-rw-r--r--src/buildtool/build_engine/analysed_target/analysed_target.hpp2
-rw-r--r--src/buildtool/build_engine/analysed_target/target_graph_information.cpp2
-rw-r--r--src/buildtool/build_engine/base_maps/TARGETS46
-rw-r--r--src/buildtool/build_engine/base_maps/directory_map.cpp6
-rw-r--r--src/buildtool/build_engine/base_maps/directory_map.hpp3
-rw-r--r--src/buildtool/build_engine/base_maps/entity_name.hpp5
-rw-r--r--src/buildtool/build_engine/base_maps/entity_name_data.hpp5
-rw-r--r--src/buildtool/build_engine/base_maps/expression_function.hpp8
-rw-r--r--src/buildtool/build_engine/base_maps/expression_map.cpp3
-rw-r--r--src/buildtool/build_engine/base_maps/expression_map.hpp3
-rw-r--r--src/buildtool/build_engine/base_maps/field_reader.hpp5
-rw-r--r--src/buildtool/build_engine/base_maps/json_file_map.hpp3
-rw-r--r--src/buildtool/build_engine/base_maps/module_name.hpp1
-rw-r--r--src/buildtool/build_engine/base_maps/rule_map.cpp7
-rw-r--r--src/buildtool/build_engine/base_maps/rule_map.hpp4
-rw-r--r--src/buildtool/build_engine/base_maps/source_map.cpp17
-rw-r--r--src/buildtool/build_engine/base_maps/source_map.hpp6
-rw-r--r--src/buildtool/build_engine/base_maps/targets_file_map.hpp5
-rw-r--r--src/buildtool/build_engine/base_maps/user_rule.hpp7
-rw-r--r--src/buildtool/build_engine/expression/TARGETS6
-rw-r--r--src/buildtool/build_engine/expression/configuration.hpp6
-rw-r--r--src/buildtool/build_engine/expression/evaluator.cpp10
-rw-r--r--src/buildtool/build_engine/expression/evaluator.hpp5
-rw-r--r--src/buildtool/build_engine/expression/expression.cpp7
-rw-r--r--src/buildtool/build_engine/expression/expression.hpp7
-rw-r--r--src/buildtool/build_engine/expression/expression_ptr.cpp1
-rw-r--r--src/buildtool/build_engine/expression/expression_ptr.hpp2
-rw-r--r--src/buildtool/build_engine/expression/linked_map.hpp10
-rw-r--r--src/buildtool/build_engine/expression/target_node.hpp6
-rw-r--r--src/buildtool/build_engine/expression/target_result.cpp7
-rw-r--r--src/buildtool/build_engine/expression/target_result.hpp2
-rw-r--r--src/buildtool/build_engine/target_map/TARGETS33
-rw-r--r--src/buildtool/build_engine/target_map/absent_target_map.cpp20
-rw-r--r--src/buildtool/build_engine/target_map/built_in_rules.cpp18
-rw-r--r--src/buildtool/build_engine/target_map/configured_target.hpp2
-rw-r--r--src/buildtool/build_engine/target_map/export.cpp24
-rw-r--r--src/buildtool/build_engine/target_map/result_map.hpp17
-rw-r--r--src/buildtool/build_engine/target_map/target_map.cpp36
-rw-r--r--src/buildtool/build_engine/target_map/target_map.hpp1
-rw-r--r--src/buildtool/build_engine/target_map/utils.cpp10
-rw-r--r--src/buildtool/build_engine/target_map/utils.hpp10
-rw-r--r--src/utils/cpp/path_hash.hpp7
44 files changed, 288 insertions, 104 deletions
diff --git a/src/buildtool/build_engine/analysed_target/TARGETS b/src/buildtool/build_engine/analysed_target/TARGETS
index 3fff08b8..8d524e08 100644
--- a/src/buildtool/build_engine/analysed_target/TARGETS
+++ b/src/buildtool/build_engine/analysed_target/TARGETS
@@ -5,14 +5,16 @@
, "srcs": ["analysed_target.cpp"]
, "deps":
[ "graph_information"
- , ["src/buildtool/build_engine/expression", "expression"]
, ["src/buildtool/build_engine/expression", "expression_ptr_interface"]
, ["src/buildtool/common", "action_description"]
, ["src/buildtool/common", "artifact_description"]
, ["src/buildtool/common", "tree"]
]
, "stage": ["src", "buildtool", "build_engine", "analysed_target"]
- , "private-deps": [["@", "gsl", "", "gsl"]]
+ , "private-deps":
+ [ ["@", "gsl", "", "gsl"]
+ , ["src/buildtool/build_engine/expression", "expression"]
+ ]
}
, "graph_information":
{ "type": ["@", "rules", "CC", "library"]
diff --git a/src/buildtool/build_engine/analysed_target/analysed_target.cpp b/src/buildtool/build_engine/analysed_target/analysed_target.cpp
index b9a5f559..84b9b6ef 100644
--- a/src/buildtool/build_engine/analysed_target/analysed_target.cpp
+++ b/src/buildtool/build_engine/analysed_target/analysed_target.cpp
@@ -15,6 +15,7 @@
#include "src/buildtool/build_engine/analysed_target/analysed_target.hpp"
#include "gsl/gsl"
+#include "src/buildtool/build_engine/expression/expression.hpp"
namespace {
diff --git a/src/buildtool/build_engine/analysed_target/analysed_target.hpp b/src/buildtool/build_engine/analysed_target/analysed_target.hpp
index 889a6e89..419db910 100644
--- a/src/buildtool/build_engine/analysed_target/analysed_target.hpp
+++ b/src/buildtool/build_engine/analysed_target/analysed_target.hpp
@@ -15,6 +15,7 @@
#ifndef INCLUDED_SRC_BUILDTOOL_BUILDENGINE_ANALYSED_TARGET_ANALYSED_TARGET_HPP
#define INCLUDED_SRC_BUILDTOOL_BUILDENGINE_ANALYSED_TARGET_ANALYSED_TARGET_HPP
+#include <functional>
#include <memory>
#include <set>
#include <string>
@@ -23,7 +24,6 @@
#include <vector>
#include "src/buildtool/build_engine/analysed_target/target_graph_information.hpp"
-#include "src/buildtool/build_engine/expression/configuration.hpp"
#include "src/buildtool/build_engine/expression/expression_ptr.hpp"
#include "src/buildtool/build_engine/expression/target_result.hpp"
#include "src/buildtool/common/action_description.hpp"
diff --git a/src/buildtool/build_engine/analysed_target/target_graph_information.cpp b/src/buildtool/build_engine/analysed_target/target_graph_information.cpp
index 24ba3090..3a923740 100644
--- a/src/buildtool/build_engine/analysed_target/target_graph_information.cpp
+++ b/src/buildtool/build_engine/analysed_target/target_graph_information.cpp
@@ -14,6 +14,8 @@
#include "src/buildtool/build_engine/analysed_target/target_graph_information.hpp"
+#include <memory>
+
auto TargetGraphInformation::NodeString() const noexcept
-> std::optional<std::string> {
if (node_) {
diff --git a/src/buildtool/build_engine/base_maps/TARGETS b/src/buildtool/build_engine/base_maps/TARGETS
index 3a3107be..f91b9c6e 100644
--- a/src/buildtool/build_engine/base_maps/TARGETS
+++ b/src/buildtool/build_engine/base_maps/TARGETS
@@ -18,7 +18,7 @@
, ["src/buildtool/multithreading", "async_map_consumer"]
]
, "stage": ["src", "buildtool", "build_engine", "base_maps"]
- , "private-deps": [["src/utils/cpp", "path"]]
+ , "private-deps": [["@", "fmt", "", "fmt"]]
}
, "json_file_map":
{ "type": ["@", "rules", "CC", "library"]
@@ -30,6 +30,7 @@
, ["@", "gsl", "", "gsl"]
, ["@", "json", "", "json"]
, ["src/buildtool/common", "config"]
+ , ["src/buildtool/file_system", "file_root"]
, ["src/buildtool/multithreading", "async_map_consumer"]
]
, "stage": ["src", "buildtool", "build_engine", "base_maps"]
@@ -41,7 +42,9 @@
, "deps":
[ "json_file_map"
, "module_name"
+ , ["@", "gsl", "", "gsl"]
, ["@", "json", "", "json"]
+ , ["src/buildtool/common", "config"]
, ["src/buildtool/multithreading", "async_map_consumer"]
]
, "stage": ["src", "buildtool", "build_engine", "base_maps"]
@@ -56,7 +59,6 @@
, ["@", "json", "", "json"]
, ["src/buildtool/build_engine/expression", "expression_ptr_interface"]
, ["src/utils/cpp", "hash_combine"]
- , ["src/utils/cpp", "hex_string"]
]
, "stage": ["src", "buildtool", "build_engine", "base_maps"]
}
@@ -66,11 +68,12 @@
, "hdrs": ["entity_name.hpp"]
, "deps":
[ "entity_name_data"
+ , ["@", "fmt", "", "fmt"]
, ["@", "gsl", "", "gsl"]
, ["@", "json", "", "json"]
, ["src/buildtool/build_engine/expression", "expression"]
+ , ["src/buildtool/build_engine/expression", "expression_ptr_interface"]
, ["src/buildtool/common", "config"]
- , ["src/utils/cpp", "hash_combine"]
]
, "stage": ["src", "buildtool", "build_engine", "base_maps"]
}
@@ -81,21 +84,23 @@
, "srcs": ["source_map.cpp"]
, "deps":
[ "directory_map"
- , "entity_name"
+ , "entity_name_data"
, ["@", "gsl", "", "gsl"]
, ["@", "json", "", "json"]
, ["src/buildtool/build_engine/analysed_target", "target"]
- , ["src/buildtool/build_engine/expression", "expression"]
, ["src/buildtool/common", "config"]
, ["src/buildtool/crypto", "hash_function"]
, ["src/buildtool/multithreading", "async_map_consumer"]
- , ["src/buildtool/multithreading", "task_system"]
]
, "stage": ["src", "buildtool", "build_engine", "base_maps"]
, "private-deps":
- [ ["src/buildtool/common", "common"]
- , ["src/buildtool/file_system", "object_type"]
- , ["src/utils/cpp", "json"]
+ [ "module_name"
+ , ["@", "fmt", "", "fmt"]
+ , ["src/buildtool/build_engine/analysed_target", "graph_information"]
+ , ["src/buildtool/build_engine/expression", "expression"]
+ , ["src/buildtool/build_engine/expression", "expression_ptr_interface"]
+ , ["src/buildtool/common", "action_description"]
+ , ["src/buildtool/common", "tree"]
]
}
, "field_reader":
@@ -104,10 +109,12 @@
, "hdrs": ["field_reader.hpp"]
, "deps":
[ "entity_name"
+ , "entity_name_data"
, ["@", "fmt", "", "fmt"]
, ["@", "gsl", "", "gsl"]
, ["@", "json", "", "json"]
, ["src/buildtool/build_engine/expression", "expression"]
+ , ["src/buildtool/build_engine/expression", "expression_ptr_interface"]
, ["src/buildtool/common", "config"]
, ["src/buildtool/multithreading", "async_map_consumer"]
]
@@ -126,6 +133,11 @@
, ["src/utils/cpp", "gsl"]
]
, "stage": ["src", "buildtool", "build_engine", "base_maps"]
+ , "private-deps":
+ [ ["@", "json", "", "json"]
+ , ["src/buildtool/build_engine/expression", "expression_ptr_interface"]
+ , ["src/buildtool/build_engine/expression", "linked_map"]
+ ]
}
, "expression_map":
{ "type": ["@", "rules", "CC", "library"]
@@ -133,7 +145,7 @@
, "hdrs": ["expression_map.hpp"]
, "srcs": ["expression_map.cpp"]
, "deps":
- [ "entity_name"
+ [ "entity_name_data"
, "expression_function"
, "json_file_map"
, "module_name"
@@ -151,11 +163,11 @@
, "name": ["user_rule"]
, "hdrs": ["user_rule.hpp"]
, "deps":
- [ "entity_name"
+ [ "entity_name_data"
, "expression_function"
, ["@", "fmt", "", "fmt"]
, ["@", "gsl", "", "gsl"]
- , ["src/buildtool/build_engine/expression", "expression"]
+ , ["src/buildtool/build_engine/expression", "expression_ptr_interface"]
, ["src/utils/cpp", "concepts"]
, ["src/utils/cpp", "gsl"]
]
@@ -167,7 +179,7 @@
, "hdrs": ["rule_map.hpp"]
, "srcs": ["rule_map.cpp"]
, "deps":
- [ "entity_name"
+ [ "entity_name_data"
, "expression_map"
, "json_file_map"
, "module_name"
@@ -179,6 +191,12 @@
, ["src/buildtool/multithreading", "async_map_consumer"]
]
, "stage": ["src", "buildtool", "build_engine", "base_maps"]
- , "private-deps": ["field_reader"]
+ , "private-deps":
+ [ "entity_name"
+ , "expression_function"
+ , "field_reader"
+ , ["src/buildtool/build_engine/expression", "expression"]
+ , ["src/buildtool/build_engine/expression", "expression_ptr_interface"]
+ ]
}
}
diff --git a/src/buildtool/build_engine/base_maps/directory_map.cpp b/src/buildtool/build_engine/base_maps/directory_map.cpp
index 809a8788..0cdd7977 100644
--- a/src/buildtool/build_engine/base_maps/directory_map.cpp
+++ b/src/buildtool/build_engine/base_maps/directory_map.cpp
@@ -14,11 +14,11 @@
#include "src/buildtool/build_engine/base_maps/directory_map.hpp"
-#include <filesystem>
-#include <unordered_set>
+#include <functional>
+#include <string>
+#include "fmt/core.h"
#include "src/buildtool/multithreading/async_map_consumer.hpp"
-#include "src/utils/cpp/path.hpp"
auto BuildMaps::Base::CreateDirectoryEntriesMap(
gsl::not_null<const RepositoryConfig*> const& repo_config,
diff --git a/src/buildtool/build_engine/base_maps/directory_map.hpp b/src/buildtool/build_engine/base_maps/directory_map.hpp
index 463b273d..e5b970f7 100644
--- a/src/buildtool/build_engine/base_maps/directory_map.hpp
+++ b/src/buildtool/build_engine/base_maps/directory_map.hpp
@@ -16,9 +16,6 @@
#define INCLUDED_SRC_BUILDTOOL_BUILD_ENGINE_BASE_MAPS_DIRECTORY_MAP_HPP
#include <cstddef>
-#include <filesystem>
-#include <map>
-#include <unordered_set>
#include "gsl/gsl"
#include "src/buildtool/build_engine/base_maps/module_name.hpp"
diff --git a/src/buildtool/build_engine/base_maps/entity_name.hpp b/src/buildtool/build_engine/base_maps/entity_name.hpp
index ad2b368d..16fcb3aa 100644
--- a/src/buildtool/build_engine/base_maps/entity_name.hpp
+++ b/src/buildtool/build_engine/base_maps/entity_name.hpp
@@ -17,15 +17,18 @@
#include <cstddef>
#include <filesystem>
+#include <functional>
#include <optional>
+#include <string>
#include <utility>
+#include "fmt/core.h"
#include "gsl/gsl"
#include "nlohmann/json.hpp"
#include "src/buildtool/build_engine/base_maps/entity_name_data.hpp"
#include "src/buildtool/build_engine/expression/expression.hpp"
+#include "src/buildtool/build_engine/expression/expression_ptr.hpp"
#include "src/buildtool/common/repository_config.hpp"
-#include "src/utils/cpp/hash_combine.hpp"
namespace BuildMaps::Base {
diff --git a/src/buildtool/build_engine/base_maps/entity_name_data.hpp b/src/buildtool/build_engine/base_maps/entity_name_data.hpp
index 52ac1490..4302d902 100644
--- a/src/buildtool/build_engine/base_maps/entity_name_data.hpp
+++ b/src/buildtool/build_engine/base_maps/entity_name_data.hpp
@@ -16,8 +16,10 @@
#define INCLUDED_SRC_BUILDTOOL_BUILD_ENGINE_BASE_MAPS_ENTITY_NAME_DATA_HPP
#include <cstddef>
+#include <cstdint>
#include <filesystem>
-#include <optional>
+#include <functional>
+#include <string>
#include <utility>
#include <variant>
@@ -25,7 +27,6 @@
#include "src/buildtool/build_engine/base_maps/module_name.hpp"
#include "src/buildtool/build_engine/expression/expression_ptr.hpp"
#include "src/utils/cpp/hash_combine.hpp"
-#include "src/utils/cpp/hex_string.hpp"
namespace BuildMaps::Base {
diff --git a/src/buildtool/build_engine/base_maps/expression_function.hpp b/src/buildtool/build_engine/base_maps/expression_function.hpp
index 379da7c2..e2c691d8 100644
--- a/src/buildtool/build_engine/base_maps/expression_function.hpp
+++ b/src/buildtool/build_engine/base_maps/expression_function.hpp
@@ -15,17 +15,23 @@
#ifndef INCLUDED_SRC_BUILDTOOL_BUILD_ENGINE_BASE_MAPS_EXPRESSION_FUNCTION_HPP
#define INCLUDED_SRC_BUILDTOOL_BUILD_ENGINE_BASE_MAPS_EXPRESSION_FUNCTION_HPP
+#include <functional>
#include <memory>
+#include <sstream>
#include <string>
#include <unordered_map>
-#include <utility> // std::move
+#include <utility>
#include <vector>
#include "fmt/core.h"
#include "gsl/gsl"
+#include "nlohmann/json.hpp"
#include "src/buildtool/build_engine/expression/configuration.hpp"
#include "src/buildtool/build_engine/expression/evaluator.hpp"
#include "src/buildtool/build_engine/expression/expression.hpp"
+#include "src/buildtool/build_engine/expression/expression_ptr.hpp"
+#include "src/buildtool/build_engine/expression/function_map.hpp"
+#include "src/buildtool/build_engine/expression/linked_map.hpp"
#include "src/buildtool/logging/log_level.hpp"
#include "src/buildtool/logging/logger.hpp"
#include "src/utils/cpp/gsl.hpp"
diff --git a/src/buildtool/build_engine/base_maps/expression_map.cpp b/src/buildtool/build_engine/base_maps/expression_map.cpp
index 30722bf3..17eb6c99 100644
--- a/src/buildtool/build_engine/base_maps/expression_map.cpp
+++ b/src/buildtool/build_engine/base_maps/expression_map.cpp
@@ -14,9 +14,8 @@
#include "src/buildtool/build_engine/base_maps/expression_map.hpp"
-#include <optional>
+#include <memory>
#include <string>
-#include <utility> // std::move
#include "fmt/core.h"
#include "src/buildtool/build_engine/base_maps/field_reader.hpp"
diff --git a/src/buildtool/build_engine/base_maps/expression_map.hpp b/src/buildtool/build_engine/base_maps/expression_map.hpp
index 3acec531..eec77cd6 100644
--- a/src/buildtool/build_engine/base_maps/expression_map.hpp
+++ b/src/buildtool/build_engine/base_maps/expression_map.hpp
@@ -17,12 +17,11 @@
#include <cstddef>
#include <functional>
-#include <memory>
#include <string>
#include "gsl/gsl"
#include "nlohmann/json.hpp"
-#include "src/buildtool/build_engine/base_maps/entity_name.hpp"
+#include "src/buildtool/build_engine/base_maps/entity_name_data.hpp"
#include "src/buildtool/build_engine/base_maps/expression_function.hpp"
#include "src/buildtool/build_engine/base_maps/json_file_map.hpp"
#include "src/buildtool/build_engine/base_maps/module_name.hpp"
diff --git a/src/buildtool/build_engine/base_maps/field_reader.hpp b/src/buildtool/build_engine/base_maps/field_reader.hpp
index a28999ab..df9682f9 100644
--- a/src/buildtool/build_engine/base_maps/field_reader.hpp
+++ b/src/buildtool/build_engine/base_maps/field_reader.hpp
@@ -15,7 +15,10 @@
#ifndef INCLUDED_SRC_BUILDTOOL_BUILD_ENGINE_BASE_MAPS_FIELD_READER_HPP
#define INCLUDED_SRC_BUILDTOOL_BUILD_ENGINE_BASE_MAPS_FIELD_READER_HPP
+#include <algorithm>
#include <cstddef>
+#include <functional>
+#include <iterator>
#include <memory>
#include <optional>
#include <string>
@@ -27,7 +30,9 @@
#include "gsl/gsl"
#include "nlohmann/json.hpp"
#include "src/buildtool/build_engine/base_maps/entity_name.hpp"
+#include "src/buildtool/build_engine/base_maps/entity_name_data.hpp"
#include "src/buildtool/build_engine/expression/expression.hpp"
+#include "src/buildtool/build_engine/expression/expression_ptr.hpp"
#include "src/buildtool/common/repository_config.hpp"
#include "src/buildtool/multithreading/async_map_consumer.hpp"
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 61813c7b..ff068fb6 100644
--- a/src/buildtool/build_engine/base_maps/json_file_map.hpp
+++ b/src/buildtool/build_engine/base_maps/json_file_map.hpp
@@ -16,8 +16,8 @@
#define INCLUDED_SRC_BUILDTOOL_BUILD_ENGINE_BASE_MAPS_JSON_FILE_MAP_HPP
#include <cstddef>
+#include <exception>
#include <filesystem>
-#include <fstream>
#include <string>
#include <utility> // std::move
@@ -26,6 +26,7 @@
#include "nlohmann/json.hpp"
#include "src/buildtool/build_engine/base_maps/module_name.hpp"
#include "src/buildtool/common/repository_config.hpp"
+#include "src/buildtool/file_system/file_root.hpp"
#include "src/buildtool/multithreading/async_map_consumer.hpp"
namespace BuildMaps::Base {
diff --git a/src/buildtool/build_engine/base_maps/module_name.hpp b/src/buildtool/build_engine/base_maps/module_name.hpp
index 58498240..7dec1671 100644
--- a/src/buildtool/build_engine/base_maps/module_name.hpp
+++ b/src/buildtool/build_engine/base_maps/module_name.hpp
@@ -16,6 +16,7 @@
#define INCLUDED_SRC_BUILDTOOL_BUILD_ENGINE_BASE_MAPS_MODULE_NAME_HPP
#include <cstddef>
+#include <functional>
#include <string>
#include <utility>
diff --git a/src/buildtool/build_engine/base_maps/rule_map.cpp b/src/buildtool/build_engine/base_maps/rule_map.cpp
index 3e90749e..ec57c255 100644
--- a/src/buildtool/build_engine/base_maps/rule_map.cpp
+++ b/src/buildtool/build_engine/base_maps/rule_map.cpp
@@ -14,13 +14,20 @@
#include "src/buildtool/build_engine/base_maps/rule_map.hpp"
+#include <functional>
+#include <memory>
#include <optional>
#include <string>
#include <unordered_set>
#include <utility> // std::move
+#include <vector>
#include "fmt/core.h"
+#include "src/buildtool/build_engine/base_maps/entity_name.hpp"
+#include "src/buildtool/build_engine/base_maps/expression_function.hpp"
#include "src/buildtool/build_engine/base_maps/field_reader.hpp"
+#include "src/buildtool/build_engine/expression/expression.hpp"
+#include "src/buildtool/build_engine/expression/expression_ptr.hpp"
namespace BuildMaps::Base {
diff --git a/src/buildtool/build_engine/base_maps/rule_map.hpp b/src/buildtool/build_engine/base_maps/rule_map.hpp
index d911317c..4ab12e27 100644
--- a/src/buildtool/build_engine/base_maps/rule_map.hpp
+++ b/src/buildtool/build_engine/base_maps/rule_map.hpp
@@ -16,12 +16,10 @@
#define INCLUDED_SRC_BUILDTOOL_BUILD_ENGINE_BASE_MAPS_RULE_MAP_HPP
#include <cstddef>
-#include <memory>
-#include <string>
#include "gsl/gsl"
#include "nlohmann/json.hpp"
-#include "src/buildtool/build_engine/base_maps/entity_name.hpp"
+#include "src/buildtool/build_engine/base_maps/entity_name_data.hpp"
#include "src/buildtool/build_engine/base_maps/expression_map.hpp"
#include "src/buildtool/build_engine/base_maps/json_file_map.hpp"
#include "src/buildtool/build_engine/base_maps/module_name.hpp"
diff --git a/src/buildtool/build_engine/base_maps/source_map.cpp b/src/buildtool/build_engine/base_maps/source_map.cpp
index 8c716ac7..2ac79131 100644
--- a/src/buildtool/build_engine/base_maps/source_map.cpp
+++ b/src/buildtool/build_engine/base_maps/source_map.cpp
@@ -15,13 +15,24 @@
#include "src/buildtool/build_engine/base_maps/source_map.hpp"
#include <filesystem>
+#include <functional>
+#include <memory>
+#include <set>
+#include <string>
+#include <unordered_set>
#include <utility> // std::move
+#include <vector>
+#include "fmt/core.h"
#include "nlohmann/json.hpp"
-#include "src/buildtool/common/artifact_digest.hpp"
-#include "src/buildtool/file_system/object_type.hpp"
+#include "src/buildtool/build_engine/analysed_target/target_graph_information.hpp"
+#include "src/buildtool/build_engine/base_maps/module_name.hpp"
+#include "src/buildtool/build_engine/expression/expression.hpp"
+#include "src/buildtool/build_engine/expression/expression_ptr.hpp"
+#include "src/buildtool/build_engine/expression/target_result.hpp"
+#include "src/buildtool/common/action_description.hpp"
+#include "src/buildtool/common/tree.hpp"
#include "src/buildtool/multithreading/async_map_consumer.hpp"
-#include "src/utils/cpp/json.hpp"
namespace BuildMaps::Base {
diff --git a/src/buildtool/build_engine/base_maps/source_map.hpp b/src/buildtool/build_engine/base_maps/source_map.hpp
index a65de692..1b85ff65 100644
--- a/src/buildtool/build_engine/base_maps/source_map.hpp
+++ b/src/buildtool/build_engine/base_maps/source_map.hpp
@@ -16,18 +16,14 @@
#define INCLUDED_SRC_BUILDTOOL_BUILD_ENGINE_BASE_MAPS_SOURCE_MAP_HPP
#include <cstddef>
-#include <unordered_set>
#include "gsl/gsl"
-#include "nlohmann/json.hpp"
#include "src/buildtool/build_engine/analysed_target/analysed_target.hpp"
#include "src/buildtool/build_engine/base_maps/directory_map.hpp"
-#include "src/buildtool/build_engine/base_maps/entity_name.hpp"
-#include "src/buildtool/build_engine/expression/expression.hpp"
+#include "src/buildtool/build_engine/base_maps/entity_name_data.hpp"
#include "src/buildtool/common/repository_config.hpp"
#include "src/buildtool/crypto/hash_function.hpp"
#include "src/buildtool/multithreading/async_map_consumer.hpp"
-#include "src/buildtool/multithreading/task_system.hpp"
namespace BuildMaps::Base {
diff --git a/src/buildtool/build_engine/base_maps/targets_file_map.hpp b/src/buildtool/build_engine/base_maps/targets_file_map.hpp
index 8ff5d76c..e8dcbe75 100644
--- a/src/buildtool/build_engine/base_maps/targets_file_map.hpp
+++ b/src/buildtool/build_engine/base_maps/targets_file_map.hpp
@@ -15,12 +15,13 @@
#ifndef INCLUDED_SRC_BUILDTOOL_BUILD_ENGINE_BASE_MAPS_TARGETS_FILE_MAP_HPP
#define INCLUDED_SRC_BUILDTOOL_BUILD_ENGINE_BASE_MAPS_TARGETS_FILE_MAP_HPP
-#include <filesystem>
-#include <string>
+#include <cstddef>
+#include "gsl/gsl"
#include "nlohmann/json.hpp"
#include "src/buildtool/build_engine/base_maps/json_file_map.hpp"
#include "src/buildtool/build_engine/base_maps/module_name.hpp"
+#include "src/buildtool/common/repository_config.hpp"
#include "src/buildtool/multithreading/async_map_consumer.hpp"
namespace BuildMaps::Base {
diff --git a/src/buildtool/build_engine/base_maps/user_rule.hpp b/src/buildtool/build_engine/base_maps/user_rule.hpp
index c2d46420..020e7433 100644
--- a/src/buildtool/build_engine/base_maps/user_rule.hpp
+++ b/src/buildtool/build_engine/base_maps/user_rule.hpp
@@ -16,7 +16,10 @@
#define INCLUDED_SRC_BUILDTOOL_BUILD_ENGINE_BASE_MAPS_USER_RULE_HPP
#include <algorithm>
+#include <compare>
#include <cstddef>
+#include <functional>
+#include <iterator>
#include <memory>
#include <set>
#include <sstream>
@@ -28,9 +31,9 @@
#include "fmt/core.h"
#include "gsl/gsl"
-#include "src/buildtool/build_engine/base_maps/entity_name.hpp"
+#include "src/buildtool/build_engine/base_maps/entity_name_data.hpp"
#include "src/buildtool/build_engine/base_maps/expression_function.hpp"
-#include "src/buildtool/build_engine/expression/expression.hpp"
+#include "src/buildtool/build_engine/expression/expression_ptr.hpp"
#include "src/utils/cpp/concepts.hpp"
#include "src/utils/cpp/gsl.hpp"
diff --git a/src/buildtool/build_engine/expression/TARGETS b/src/buildtool/build_engine/expression/TARGETS
index ff615020..0e5e38c1 100644
--- a/src/buildtool/build_engine/expression/TARGETS
+++ b/src/buildtool/build_engine/expression/TARGETS
@@ -5,7 +5,6 @@
, "deps":
[ ["@", "fmt", "", "fmt"]
, ["src/buildtool/multithreading", "atomic_value"]
- , ["src/utils/cpp", "atomic"]
, ["src/utils/cpp", "hash_combine"]
]
, "stage": ["src", "buildtool", "build_engine", "expression"]
@@ -42,24 +41,25 @@
, "deps":
[ "expression_ptr_interface"
, "linked_map"
- , ["@", "gsl", "", "gsl"]
, ["@", "json", "", "json"]
, ["src/buildtool/build_engine/base_maps", "entity_name_data"]
, ["src/buildtool/common", "artifact_description"]
+ , ["src/buildtool/common", "common"]
, ["src/buildtool/crypto", "hash_function"]
, ["src/buildtool/multithreading", "atomic_value"]
, ["src/utils/cpp", "concepts"]
, ["src/utils/cpp", "gsl"]
, ["src/utils/cpp", "hash_combine"]
, ["src/utils/cpp", "hex_string"]
- , ["src/utils/cpp", "json"]
]
, "stage": ["src", "buildtool", "build_engine", "expression"]
, "private-deps":
[ ["@", "fmt", "", "fmt"]
+ , ["@", "gsl", "", "gsl"]
, ["src/buildtool/crypto", "hasher"]
, ["src/buildtool/logging", "log_level"]
, ["src/buildtool/logging", "logging"]
+ , ["src/utils/cpp", "json"]
, ["src/utils/cpp", "path"]
]
}
diff --git a/src/buildtool/build_engine/expression/configuration.hpp b/src/buildtool/build_engine/expression/configuration.hpp
index 15f8c379..ec3fde66 100644
--- a/src/buildtool/build_engine/expression/configuration.hpp
+++ b/src/buildtool/build_engine/expression/configuration.hpp
@@ -17,12 +17,16 @@
#include <algorithm>
#include <cstddef>
+#include <functional>
+#include <optional>
#include <sstream>
#include <string>
#include <utility> // std::move
+#include <vector>
-#include "gsl/gsl"
+#include "nlohmann/json.hpp"
#include "src/buildtool/build_engine/expression/expression.hpp"
+#include "src/buildtool/build_engine/expression/expression_ptr.hpp"
#include "src/utils/cpp/concepts.hpp"
#include "src/utils/cpp/gsl.hpp"
diff --git a/src/buildtool/build_engine/expression/evaluator.cpp b/src/buildtool/build_engine/expression/evaluator.cpp
index dfae8499..e26c43e0 100644
--- a/src/buildtool/build_engine/expression/evaluator.cpp
+++ b/src/buildtool/build_engine/expression/evaluator.cpp
@@ -15,16 +15,26 @@
#include "src/buildtool/build_engine/expression/evaluator.hpp"
#include <algorithm>
+#include <cmath>
+#include <compare>
+#include <cstdint>
+#include <cstdlib>
#include <exception>
#include <filesystem>
+#include <iterator>
+#include <map>
+#include <optional>
#include <sstream>
#include <string>
#include <unordered_set>
#include <utility> // std::move
#include "fmt/core.h"
+#include "nlohmann/json.hpp"
#include "src/buildtool/build_engine/expression/configuration.hpp"
+#include "src/buildtool/build_engine/expression/expression.hpp"
#include "src/buildtool/build_engine/expression/function_map.hpp"
+#include "src/buildtool/build_engine/expression/linked_map.hpp"
#include "src/utils/cpp/path.hpp"
namespace {
diff --git a/src/buildtool/build_engine/expression/evaluator.hpp b/src/buildtool/build_engine/expression/evaluator.hpp
index ba9bd2ef..4affb16b 100644
--- a/src/buildtool/build_engine/expression/evaluator.hpp
+++ b/src/buildtool/build_engine/expression/evaluator.hpp
@@ -17,15 +17,14 @@
#include <cstddef>
#include <exception>
+#include <functional>
#include <string>
#include <utility>
#include <vector>
-#include "src/buildtool/build_engine/expression/expression.hpp"
+#include "src/buildtool/build_engine/expression/expression_ptr.hpp"
#include "src/buildtool/build_engine/expression/function_map.hpp"
-class Configuration;
-
class Evaluator {
struct ConfigData {
std::size_t expression_log_limit{kDefaultExpressionLogLimit};
diff --git a/src/buildtool/build_engine/expression/expression.cpp b/src/buildtool/build_engine/expression/expression.cpp
index 4dd61a2d..17e25fc6 100644
--- a/src/buildtool/build_engine/expression/expression.cpp
+++ b/src/buildtool/build_engine/expression/expression.cpp
@@ -15,18 +15,13 @@
#include "src/buildtool/build_engine/expression/expression.hpp"
#include <algorithm>
-#include <exception>
+#include <iterator>
#include <optional>
-#include <sstream>
#include <string>
-#include <type_traits>
#include "fmt/core.h"
-#include "gsl/gsl"
-#include "src/buildtool/build_engine/expression/evaluator.hpp"
#include "src/buildtool/crypto/hash_function.hpp"
#include "src/buildtool/crypto/hasher.hpp"
-#include "src/buildtool/logging/logger.hpp"
#include "src/utils/cpp/gsl.hpp"
#include "src/utils/cpp/json.hpp"
diff --git a/src/buildtool/build_engine/expression/expression.hpp b/src/buildtool/build_engine/expression/expression.hpp
index b28fec51..1f3d2d88 100644
--- a/src/buildtool/build_engine/expression/expression.hpp
+++ b/src/buildtool/build_engine/expression/expression.hpp
@@ -15,11 +15,12 @@
#ifndef INCLUDED_SRC_BUILDTOOL_BUILD_ENGINE_EXPRESSION_EXPRESSION_HPP
#define INCLUDED_SRC_BUILDTOOL_BUILD_ENGINE_EXPRESSION_EXPRESSION_HPP
+#include <algorithm>
#include <cstddef>
#include <cstdint>
+#include <cstring>
#include <exception>
#include <functional>
-#include <memory>
#include <optional>
#include <string>
#include <type_traits>
@@ -28,17 +29,15 @@
#include <vector>
#include "fmt/core.h"
-#include "gsl/gsl"
+#include "nlohmann/json.hpp"
#include "src/buildtool/build_engine/base_maps/entity_name_data.hpp"
#include "src/buildtool/build_engine/expression/expression_ptr.hpp"
-#include "src/buildtool/build_engine/expression/function_map.hpp"
#include "src/buildtool/build_engine/expression/linked_map.hpp"
#include "src/buildtool/build_engine/expression/target_node.hpp"
#include "src/buildtool/build_engine/expression/target_result.hpp"
#include "src/buildtool/common/artifact_description.hpp"
#include "src/buildtool/multithreading/atomic_value.hpp"
#include "src/utils/cpp/hex_string.hpp"
-#include "src/utils/cpp/json.hpp"
class Expression {
friend auto operator+(Expression const& /*lhs*/,
diff --git a/src/buildtool/build_engine/expression/expression_ptr.cpp b/src/buildtool/build_engine/expression/expression_ptr.cpp
index 0d3ce649..cd39c45e 100644
--- a/src/buildtool/build_engine/expression/expression_ptr.cpp
+++ b/src/buildtool/build_engine/expression/expression_ptr.cpp
@@ -14,6 +14,7 @@
#include "src/buildtool/build_engine/expression/expression_ptr.hpp"
+#include <compare>
#include <string>
#include <utility> // std::move
diff --git a/src/buildtool/build_engine/expression/expression_ptr.hpp b/src/buildtool/build_engine/expression/expression_ptr.hpp
index c1ab6066..4fa3964d 100644
--- a/src/buildtool/build_engine/expression/expression_ptr.hpp
+++ b/src/buildtool/build_engine/expression/expression_ptr.hpp
@@ -20,6 +20,7 @@
#include <memory>
#include <string>
#include <type_traits>
+#include <utility>
#include "nlohmann/json.hpp"
#include "src/buildtool/build_engine/expression/function_map.hpp"
@@ -27,7 +28,6 @@
#include "src/buildtool/logging/log_level.hpp"
#include "src/buildtool/logging/logger.hpp"
-class Configuration;
class Expression;
class ExpressionPtr {
diff --git a/src/buildtool/build_engine/expression/linked_map.hpp b/src/buildtool/build_engine/expression/linked_map.hpp
index 1f66ab3c..1eaca5dd 100644
--- a/src/buildtool/build_engine/expression/linked_map.hpp
+++ b/src/buildtool/build_engine/expression/linked_map.hpp
@@ -15,19 +15,19 @@
#ifndef INCLUDED_SRC_BUILDTOOL_BUILD_ENGINE_EXPRESSION_LINKED_MAP_HPP
#define INCLUDED_SRC_BUILDTOOL_BUILD_ENGINE_EXPRESSION_LINKED_MAP_HPP
-#include <algorithm>
-#include <atomic>
-#include <condition_variable>
#include <cstddef>
+#include <functional>
+#include <iterator>
#include <map>
#include <memory>
-#include <mutex>
+#include <optional>
+#include <stdexcept>
+#include <type_traits>
#include <utility> // std::move
#include <vector>
#include "fmt/core.h"
#include "src/buildtool/multithreading/atomic_value.hpp"
-#include "src/utils/cpp/atomic.hpp"
#include "src/utils/cpp/hash_combine.hpp"
template <class K, class V, class NextPtr>
diff --git a/src/buildtool/build_engine/expression/target_node.hpp b/src/buildtool/build_engine/expression/target_node.hpp
index 1e7cbd2e..955a6fb7 100644
--- a/src/buildtool/build_engine/expression/target_node.hpp
+++ b/src/buildtool/build_engine/expression/target_node.hpp
@@ -15,12 +15,12 @@
#ifndef INCLUDED_SRC_BUILDTOOL_BUILDENGINE_EXPRESSION_TARGET_NODE_HPP
#define INCLUDED_SRC_BUILDTOOL_BUILDENGINE_EXPRESSION_TARGET_NODE_HPP
-#include <type_traits>
-#include <utility> // std::move
+#include <string>
+#include <utility> // IWYU pragma: keep
#include <variant>
+#include "nlohmann/json.hpp"
#include "src/buildtool/build_engine/expression/expression_ptr.hpp"
-#include "src/buildtool/build_engine/expression/target_result.hpp"
class TargetNode {
using Value = ExpressionPtr; // store result type
diff --git a/src/buildtool/build_engine/expression/target_result.cpp b/src/buildtool/build_engine/expression/target_result.cpp
index c95a803f..bb5712b1 100644
--- a/src/buildtool/build_engine/expression/target_result.cpp
+++ b/src/buildtool/build_engine/expression/target_result.cpp
@@ -14,6 +14,9 @@
#include "src/buildtool/build_engine/expression/target_result.hpp"
+#include <exception>
+#include <stdexcept>
+#include <string>
#include <unordered_map>
#include <unordered_set>
#include <utility> // std::move
@@ -21,9 +24,13 @@
#include "gsl/gsl"
#include "src/buildtool/build_engine/expression/expression.hpp"
+#include "src/buildtool/build_engine/expression/target_node.hpp"
+#include "src/buildtool/common/artifact.hpp"
#include "src/buildtool/common/artifact_description.hpp"
+#include "src/buildtool/common/artifact_digest.hpp"
#include "src/buildtool/logging/log_level.hpp"
#include "src/buildtool/logging/logger.hpp"
+#include "src/utils/cpp/hex_string.hpp"
namespace {
diff --git a/src/buildtool/build_engine/expression/target_result.hpp b/src/buildtool/build_engine/expression/target_result.hpp
index 4a698fc4..bda00ce5 100644
--- a/src/buildtool/build_engine/expression/target_result.hpp
+++ b/src/buildtool/build_engine/expression/target_result.hpp
@@ -16,11 +16,13 @@
#define INCLUDED_SRC_BUILDTOOL_BUILDENGINE_EXPRESSION_TARGET_RESULT_HPP
#include <cstddef>
+#include <functional>
#include <optional>
#include <unordered_map>
#include "nlohmann/json.hpp"
#include "src/buildtool/build_engine/expression/expression_ptr.hpp"
+#include "src/buildtool/common/artifact.hpp"
#include "src/buildtool/common/artifact_description.hpp"
#include "src/buildtool/crypto/hash_function.hpp"
#include "src/utils/cpp/hash_combine.hpp"
diff --git a/src/buildtool/build_engine/target_map/TARGETS b/src/buildtool/build_engine/target_map/TARGETS
index 17b79476..deb7f09f 100644
--- a/src/buildtool/build_engine/target_map/TARGETS
+++ b/src/buildtool/build_engine/target_map/TARGETS
@@ -18,19 +18,19 @@
, "deps":
[ ["@", "gsl", "", "gsl"]
, ["@", "json", "", "json"]
+ , ["src/buildtool/build_engine/analysed_target", "graph_information"]
, ["src/buildtool/build_engine/analysed_target", "target"]
- , ["src/buildtool/build_engine/base_maps", "entity_name"]
+ , ["src/buildtool/build_engine/base_maps", "entity_name_data"]
, ["src/buildtool/build_engine/expression", "expression"]
, ["src/buildtool/build_engine/target_map", "configured_target"]
+ , ["src/buildtool/common", "action_description"]
, ["src/buildtool/common", "common"]
, ["src/buildtool/common", "tree"]
, ["src/buildtool/logging", "log_level"]
, ["src/buildtool/logging", "logging"]
- , ["src/buildtool/multithreading", "task"]
, ["src/buildtool/multithreading", "task_system"]
, ["src/buildtool/progress_reporting", "progress"]
, ["src/buildtool/storage", "storage"]
- , ["src/utils/cpp", "hash_combine"]
]
, "stage": ["src", "buildtool", "build_engine", "target_map"]
}
@@ -47,6 +47,7 @@
, ["@", "gsl", "", "gsl"]
, ["@", "json", "", "json"]
, ["src/buildtool/build_engine/analysed_target", "target"]
+ , ["src/buildtool/build_engine/base_maps", "directory_map"]
, ["src/buildtool/build_engine/base_maps", "rule_map"]
, ["src/buildtool/build_engine/base_maps", "source_map"]
, ["src/buildtool/build_engine/base_maps", "targets_file_map"]
@@ -56,20 +57,31 @@
, "stage": ["src", "buildtool", "build_engine", "target_map"]
, "private-deps":
[ ["@", "fmt", "", "fmt"]
+ , ["src/buildtool/build_engine/analysed_target", "graph_information"]
, ["src/buildtool/build_engine/base_maps", "entity_name"]
+ , ["src/buildtool/build_engine/base_maps", "entity_name_data"]
+ , ["src/buildtool/build_engine/base_maps", "expression_function"]
, ["src/buildtool/build_engine/base_maps", "field_reader"]
+ , ["src/buildtool/build_engine/base_maps", "module_name"]
+ , ["src/buildtool/build_engine/base_maps", "user_rule"]
, ["src/buildtool/build_engine/expression", "expression"]
, ["src/buildtool/build_engine/expression", "expression_ptr_interface"]
+ , ["src/buildtool/build_engine/expression", "linked_map"]
+ , ["src/buildtool/common", "action_description"]
, ["src/buildtool/common", "artifact_description"]
, ["src/buildtool/common", "artifact_digest_factory"]
, ["src/buildtool/common", "common"]
, ["src/buildtool/common", "config"]
+ , ["src/buildtool/common", "tree"]
, ["src/buildtool/crypto", "hash_function"]
, ["src/buildtool/crypto", "hasher"]
+ , ["src/buildtool/file_system", "file_root"]
+ , ["src/buildtool/file_system", "object_type"]
, ["src/buildtool/logging", "log_level"]
, ["src/buildtool/logging", "logging"]
+ , ["src/buildtool/multithreading", "task_system"]
, ["src/buildtool/progress_reporting", "progress"]
- , ["src/buildtool/serve_api/remote", "config"]
+ , ["src/buildtool/progress_reporting", "task_tracker"]
, ["src/buildtool/serve_api/remote", "serve_api"]
, ["src/buildtool/storage", "storage"]
, ["src/utils/cpp", "gsl"]
@@ -89,11 +101,12 @@
, "target_map"
, ["@", "gsl", "", "gsl"]
, ["src/buildtool/build_engine/analysed_target", "target"]
- , ["src/buildtool/build_engine/base_maps", "entity_name"]
- , ["src/buildtool/build_engine/base_maps", "field_reader"]
+ , ["src/buildtool/build_engine/base_maps", "entity_name_data"]
, ["src/buildtool/build_engine/expression", "expression"]
, ["src/buildtool/build_engine/expression", "expression_ptr_interface"]
+ , ["src/buildtool/common", "action_description"]
, ["src/buildtool/common", "config"]
+ , ["src/buildtool/common", "tree"]
]
, "stage": ["src", "buildtool", "build_engine", "target_map"]
}
@@ -113,12 +126,18 @@
]
, "stage": ["src", "buildtool", "build_engine", "target_map"]
, "private-deps":
- [ ["@", "json", "", "json"]
+ [ ["@", "fmt", "", "fmt"]
+ , ["src/buildtool/build_engine/analysed_target", "graph_information"]
+ , ["src/buildtool/build_engine/base_maps", "entity_name_data"]
+ , ["src/buildtool/build_engine/expression", "expression"]
+ , ["src/buildtool/common", "action_description"]
, ["src/buildtool/common", "common"]
, ["src/buildtool/common", "config"]
+ , ["src/buildtool/common", "tree"]
, ["src/buildtool/logging", "log_level"]
, ["src/buildtool/logging", "logging"]
, ["src/buildtool/progress_reporting", "progress"]
+ , ["src/buildtool/progress_reporting", "task_tracker"]
, ["src/buildtool/serve_api/remote", "serve_api"]
, ["src/buildtool/storage", "storage"]
, ["src/utils/cpp", "json"]
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 bdf66019..8de5a97a 100644
--- a/src/buildtool/build_engine/target_map/absent_target_map.cpp
+++ b/src/buildtool/build_engine/target_map/absent_target_map.cpp
@@ -14,24 +14,36 @@
#include "src/buildtool/build_engine/target_map/absent_target_map.hpp"
#ifndef BOOTSTRAP_BUILD_TOOL
+#include <filesystem>
+#include <memory>
+#include <optional>
+#include <set>
#include <unordered_set>
#include <utility> // std::move
+#include <variant>
-#include "nlohmann/json.hpp"
+#include "fmt/core.h"
+#include "src/buildtool/build_engine/analysed_target/target_graph_information.hpp"
+#include "src/buildtool/build_engine/base_maps/entity_name_data.hpp"
+#include "src/buildtool/build_engine/expression/configuration.hpp"
+#include "src/buildtool/common/action_description.hpp"
+#include "src/buildtool/common/artifact.hpp"
+#include "src/buildtool/common/artifact_digest.hpp"
#include "src/buildtool/common/repository_config.hpp"
#include "src/buildtool/common/statistics.hpp"
+#include "src/buildtool/common/tree.hpp"
#include "src/buildtool/logging/log_level.hpp"
#include "src/buildtool/logging/logger.hpp"
#include "src/buildtool/progress_reporting/progress.hpp"
+#include "src/buildtool/progress_reporting/task_tracker.hpp"
#include "src/buildtool/serve_api/remote/serve_api.hpp"
#include "src/buildtool/storage/storage.hpp"
-#include "src/buildtool/storage/target_cache.hpp"
+#include "src/buildtool/storage/target_cache_entry.hpp"
#include "src/buildtool/storage/target_cache_key.hpp"
#include "src/utils/cpp/json.hpp"
-#endif
+#endif // BOOTSTRAP_BUILD_TOOL
#ifndef BOOTSTRAP_BUILD_TOOL
-
namespace {
void WithFlexibleVariables(
const gsl::not_null<AnalyseContext*>& context,
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 9623f816..220502c4 100644
--- a/src/buildtool/build_engine/target_map/built_in_rules.cpp
+++ b/src/buildtool/build_engine/target_map/built_in_rules.cpp
@@ -15,27 +15,45 @@
#include "src/buildtool/build_engine/target_map/built_in_rules.hpp"
#include <algorithm>
+#include <compare>
#include <cstddef>
#include <filesystem>
#include <functional>
+#include <initializer_list>
#include <iterator>
#include <memory>
+#include <optional>
+#include <set>
#include <sstream>
#include <string>
+#include <type_traits>
#include <unordered_map>
#include <unordered_set>
#include <utility> // std::move
+#include <vector>
#include "fmt/core.h"
+#include "src/buildtool/build_engine/analysed_target/analysed_target.hpp"
+#include "src/buildtool/build_engine/analysed_target/target_graph_information.hpp"
+#include "src/buildtool/build_engine/base_maps/entity_name.hpp"
+#include "src/buildtool/build_engine/base_maps/entity_name_data.hpp"
#include "src/buildtool/build_engine/base_maps/field_reader.hpp"
+#include "src/buildtool/build_engine/expression/configuration.hpp"
#include "src/buildtool/build_engine/expression/evaluator.hpp"
#include "src/buildtool/build_engine/expression/expression.hpp"
#include "src/buildtool/build_engine/expression/expression_ptr.hpp"
+#include "src/buildtool/build_engine/expression/function_map.hpp"
+#include "src/buildtool/build_engine/expression/linked_map.hpp"
+#include "src/buildtool/build_engine/expression/target_result.hpp"
#include "src/buildtool/build_engine/target_map/export.hpp"
#include "src/buildtool/build_engine/target_map/utils.hpp"
+#include "src/buildtool/common/action_description.hpp"
#include "src/buildtool/common/artifact_description.hpp"
#include "src/buildtool/common/artifact_digest_factory.hpp"
#include "src/buildtool/common/repository_config.hpp"
+#include "src/buildtool/common/tree.hpp"
+#include "src/buildtool/file_system/object_type.hpp"
+#include "src/buildtool/storage/storage.hpp"
#include "src/utils/cpp/path.hpp"
#include "src/utils/cpp/vector.hpp"
diff --git a/src/buildtool/build_engine/target_map/configured_target.hpp b/src/buildtool/build_engine/target_map/configured_target.hpp
index dc1f981e..8e8c6033 100644
--- a/src/buildtool/build_engine/target_map/configured_target.hpp
+++ b/src/buildtool/build_engine/target_map/configured_target.hpp
@@ -16,7 +16,9 @@
#define INCLUDED_SRC_BUILDTOOL_BUILD_ENGINE_TARGET_MAP_CONFIGURED_TARGET_HPP
#include <cstddef>
+#include <functional>
#include <memory>
+#include <string>
#include "fmt/core.h"
#include "src/buildtool/build_engine/base_maps/entity_name_data.hpp"
diff --git a/src/buildtool/build_engine/target_map/export.cpp b/src/buildtool/build_engine/target_map/export.cpp
index 23ffe641..c6e5d740 100644
--- a/src/buildtool/build_engine/target_map/export.cpp
+++ b/src/buildtool/build_engine/target_map/export.cpp
@@ -14,22 +14,42 @@
#include "src/buildtool/build_engine/target_map/export.hpp"
+#include <functional>
+#include <memory>
+#include <optional>
+#include <set>
+#include <string>
+#include <type_traits>
#include <unordered_set>
#include <utility> // std::move
+#include <variant>
+#include <vector>
+#include "fmt/core.h"
#include "nlohmann/json.hpp"
+#include "src/buildtool/build_engine/analysed_target/analysed_target.hpp"
+#include "src/buildtool/build_engine/analysed_target/target_graph_information.hpp"
+#include "src/buildtool/build_engine/base_maps/entity_name.hpp"
+#include "src/buildtool/build_engine/base_maps/entity_name_data.hpp"
#include "src/buildtool/build_engine/base_maps/field_reader.hpp"
#include "src/buildtool/build_engine/expression/configuration.hpp"
+#include "src/buildtool/build_engine/expression/expression.hpp"
+#include "src/buildtool/build_engine/expression/expression_ptr.hpp"
+#include "src/buildtool/build_engine/expression/target_result.hpp"
+#include "src/buildtool/common/action_description.hpp"
+#include "src/buildtool/common/artifact_digest.hpp"
#include "src/buildtool/common/repository_config.hpp"
#include "src/buildtool/common/statistics.hpp"
+#include "src/buildtool/common/tree.hpp"
#include "src/buildtool/logging/log_level.hpp"
#include "src/buildtool/logging/logger.hpp"
#include "src/buildtool/progress_reporting/progress.hpp"
+#include "src/buildtool/progress_reporting/task_tracker.hpp"
#include "src/buildtool/storage/storage.hpp"
-#include "src/buildtool/storage/target_cache.hpp"
+#include "src/buildtool/storage/target_cache_entry.hpp"
+#include "src/buildtool/storage/target_cache_key.hpp"
#include "src/utils/cpp/json.hpp"
#ifndef BOOTSTRAP_BUILD_TOOL
-#include "src/buildtool/serve_api/remote/config.hpp"
#include "src/buildtool/serve_api/remote/serve_api.hpp"
#endif // BOOTSTRAP_BUILD_TOOL
diff --git a/src/buildtool/build_engine/target_map/result_map.hpp b/src/buildtool/build_engine/target_map/result_map.hpp
index 3e144628..9d688823 100644
--- a/src/buildtool/build_engine/target_map/result_map.hpp
+++ b/src/buildtool/build_engine/target_map/result_map.hpp
@@ -16,12 +16,19 @@
#define INCLUDED_SRC_BUILDTOOL_BUILD_ENGINE_TARGET_MAP_RESULT_MAP_HPP
#include <algorithm>
+#include <compare>
#include <cstddef>
#include <fstream>
+#include <functional>
+#include <iomanip>
+#include <iterator>
+#include <memory>
#include <mutex>
+#include <numeric>
#include <optional>
#include <string>
#include <thread>
+#include <unordered_map>
#include <unordered_set>
#include <utility> // std::move
#include <vector>
@@ -29,19 +36,19 @@
#include "gsl/gsl"
#include "nlohmann/json.hpp"
#include "src/buildtool/build_engine/analysed_target/analysed_target.hpp"
-#include "src/buildtool/build_engine/base_maps/entity_name.hpp"
-#include "src/buildtool/build_engine/expression/expression.hpp"
+#include "src/buildtool/build_engine/analysed_target/target_graph_information.hpp"
+#include "src/buildtool/build_engine/base_maps/entity_name_data.hpp"
+#include "src/buildtool/build_engine/expression/configuration.hpp"
#include "src/buildtool/build_engine/target_map/configured_target.hpp"
+#include "src/buildtool/common/action_description.hpp"
+#include "src/buildtool/common/identifier.hpp"
#include "src/buildtool/common/statistics.hpp"
#include "src/buildtool/common/tree.hpp"
#include "src/buildtool/logging/log_level.hpp"
#include "src/buildtool/logging/logger.hpp"
-#include "src/buildtool/multithreading/task.hpp"
#include "src/buildtool/multithreading/task_system.hpp"
#include "src/buildtool/progress_reporting/progress.hpp"
-#include "src/buildtool/storage/target_cache.hpp"
#include "src/buildtool/storage/target_cache_key.hpp"
-#include "src/utils/cpp/hash_combine.hpp"
namespace BuildMaps::Target {
diff --git a/src/buildtool/build_engine/target_map/target_map.cpp b/src/buildtool/build_engine/target_map/target_map.cpp
index 961cdc73..ab33f6f2 100644
--- a/src/buildtool/build_engine/target_map/target_map.cpp
+++ b/src/buildtool/build_engine/target_map/target_map.cpp
@@ -14,44 +14,64 @@
#include "src/buildtool/build_engine/target_map/target_map.hpp"
+#ifdef __unix__
+#include <fnmatch.h>
+#else
+#error "Non-unix is not supported yet"
+#endif
+
#include <algorithm>
+#include <compare>
#include <cstdint>
+#include <filesystem>
+#include <iterator>
#include <memory>
+#include <optional>
#include <set>
#include <sstream>
#include <string>
+#include <type_traits>
#include <unordered_map>
#include <unordered_set>
#include <utility>
-
-#ifdef __unix__
-#include <fnmatch.h>
-#else
-#error "Non-unix is not supported yet"
-#endif
+#include <variant>
+#include <vector>
#include "fmt/core.h"
+#include "src/buildtool/build_engine/analysed_target/target_graph_information.hpp"
+#include "src/buildtool/build_engine/base_maps/entity_name.hpp"
+#include "src/buildtool/build_engine/base_maps/entity_name_data.hpp"
+#include "src/buildtool/build_engine/base_maps/expression_function.hpp"
#include "src/buildtool/build_engine/base_maps/field_reader.hpp"
+#include "src/buildtool/build_engine/base_maps/module_name.hpp"
+#include "src/buildtool/build_engine/base_maps/user_rule.hpp"
#include "src/buildtool/build_engine/expression/configuration.hpp"
#include "src/buildtool/build_engine/expression/evaluator.hpp"
#include "src/buildtool/build_engine/expression/expression.hpp"
+#include "src/buildtool/build_engine/expression/expression_ptr.hpp"
#include "src/buildtool/build_engine/expression/function_map.hpp"
+#include "src/buildtool/build_engine/expression/linked_map.hpp"
+#include "src/buildtool/build_engine/expression/target_node.hpp"
+#include "src/buildtool/build_engine/expression/target_result.hpp"
#include "src/buildtool/build_engine/target_map/built_in_rules.hpp"
#include "src/buildtool/build_engine/target_map/utils.hpp"
+#include "src/buildtool/common/action_description.hpp"
#include "src/buildtool/common/artifact_description.hpp"
#include "src/buildtool/common/artifact_digest_factory.hpp"
#include "src/buildtool/common/repository_config.hpp"
#include "src/buildtool/common/statistics.hpp"
+#include "src/buildtool/common/tree.hpp"
#include "src/buildtool/crypto/hash_function.hpp"
+#include "src/buildtool/file_system/file_root.hpp"
+#include "src/buildtool/file_system/object_type.hpp"
#include "src/buildtool/logging/log_level.hpp"
#include "src/buildtool/logging/logger.hpp"
+#include "src/buildtool/multithreading/task_system.hpp"
#include "src/buildtool/storage/storage.hpp"
#include "src/utils/cpp/gsl.hpp"
#include "src/utils/cpp/path.hpp"
#include "src/utils/cpp/vector.hpp"
-
#ifndef BOOTSTRAP_BUILD_TOOL
-#include "src/buildtool/serve_api/remote/config.hpp"
#include "src/buildtool/serve_api/remote/serve_api.hpp"
#endif // BOOTSTRAP_BUILD_TOOL
diff --git a/src/buildtool/build_engine/target_map/target_map.hpp b/src/buildtool/build_engine/target_map/target_map.hpp
index d411da1c..ef557100 100644
--- a/src/buildtool/build_engine/target_map/target_map.hpp
+++ b/src/buildtool/build_engine/target_map/target_map.hpp
@@ -22,6 +22,7 @@
#include "gsl/gsl"
#include "nlohmann/json.hpp"
#include "src/buildtool/build_engine/analysed_target/analysed_target.hpp"
+#include "src/buildtool/build_engine/base_maps/directory_map.hpp"
#include "src/buildtool/build_engine/base_maps/rule_map.hpp"
#include "src/buildtool/build_engine/base_maps/source_map.hpp"
#include "src/buildtool/build_engine/base_maps/targets_file_map.hpp"
diff --git a/src/buildtool/build_engine/target_map/utils.cpp b/src/buildtool/build_engine/target_map/utils.cpp
index 8a8af17c..0ecda4ce 100644
--- a/src/buildtool/build_engine/target_map/utils.cpp
+++ b/src/buildtool/build_engine/target_map/utils.cpp
@@ -17,10 +17,20 @@
#include <algorithm>
#include <cstddef>
#include <filesystem>
+#include <functional>
+#include <map>
+#include <memory>
#include <unordered_set>
#include <utility> // std::move
#include <vector>
+#include "fmt/core.h"
+#include "src/buildtool/build_engine/base_maps/entity_name.hpp"
+#include "src/buildtool/build_engine/expression/evaluator.hpp"
+#include "src/buildtool/build_engine/expression/expression.hpp"
+#include "src/buildtool/build_engine/expression/linked_map.hpp"
+#include "src/buildtool/common/action.hpp"
+#include "src/buildtool/common/artifact_description.hpp"
#include "src/buildtool/crypto/hash_function.hpp"
#include "src/buildtool/crypto/hasher.hpp"
#include "src/utils/cpp/path.hpp"
diff --git a/src/buildtool/build_engine/target_map/utils.hpp b/src/buildtool/build_engine/target_map/utils.hpp
index 9ffd6374..e7d177c9 100644
--- a/src/buildtool/build_engine/target_map/utils.hpp
+++ b/src/buildtool/build_engine/target_map/utils.hpp
@@ -16,19 +16,23 @@
#define INCLUDED_SRC_BUILDTOOL_BUILD_ENGINE_TARGET_MAP_UTILS_HPP
#include <optional>
+#include <set>
+#include <string>
#include <unordered_map>
#include <variant>
+#include <vector>
#include "gsl/gsl"
#include "src/buildtool/build_engine/analysed_target/analysed_target.hpp"
-#include "src/buildtool/build_engine/base_maps/entity_name.hpp"
-#include "src/buildtool/build_engine/base_maps/field_reader.hpp"
+#include "src/buildtool/build_engine/base_maps/entity_name_data.hpp"
#include "src/buildtool/build_engine/expression/configuration.hpp"
-#include "src/buildtool/build_engine/expression/evaluator.hpp"
+#include "src/buildtool/build_engine/expression/expression_ptr.hpp"
#include "src/buildtool/build_engine/expression/function_map.hpp"
#include "src/buildtool/build_engine/target_map/configured_target.hpp"
#include "src/buildtool/build_engine/target_map/target_map.hpp"
+#include "src/buildtool/common/action_description.hpp"
#include "src/buildtool/common/repository_config.hpp"
+#include "src/buildtool/common/tree.hpp"
namespace BuildMaps::Target::Utils {
diff --git a/src/utils/cpp/path_hash.hpp b/src/utils/cpp/path_hash.hpp
index 2f433c30..15587be9 100644
--- a/src/utils/cpp/path_hash.hpp
+++ b/src/utils/cpp/path_hash.hpp
@@ -15,14 +15,17 @@
#ifndef INCLUDED_SRC_UTILS_CPP_PATH_HASH_HPP
#define INCLUDED_SRC_UTILS_CPP_PATH_HASH_HPP
-#include <cstddef>
-#include <filesystem>
+// IWYU pragma: always_keep
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
#define GLIBCXX_11_4 20230528 // gcc/DATESTAMP of version 11.4
#if (defined(__GLIBCXX__) and _GLIBCXX_RELEASE < 12 and \
!(_GLIBCXX_RELEASE == 11 and __GLIBCXX__ >= GLIBCXX_11_4)) or \
(defined(_LIBCPP_VERSION) and _LIBCPP_VERSION < 16000)
+
+#include <cstddef>
+#include <filesystem>
+
// std::hash<std::filesystem::path> is missing for
// - GNU's libstdc++ < 11.4
// - LLVM's libcxx < 16 (see https://reviews.llvm.org/D125394)