diff options
6 files changed, 26 insertions, 17 deletions
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 b4d3a7cd..9623f816 100644 --- a/src/buildtool/build_engine/target_map/built_in_rules.cpp +++ b/src/buildtool/build_engine/target_map/built_in_rules.cpp @@ -28,6 +28,7 @@ #include "fmt/core.h" #include "src/buildtool/build_engine/base_maps/field_reader.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/target_map/export.hpp" @@ -1679,10 +1680,11 @@ auto HandleBuiltin(const gsl::not_null<AnalyseContext*>& context, } auto target_logger = std::make_shared<BuildMaps::Target::TargetMap::Logger>( [logger, rule_name, key](auto msg, auto fatal) { - (*logger)(fmt::format("While evaluating {} target {}:\n{}", - rule_name, - key.ToShortString(), - msg), + (*logger)(fmt::format( + "While evaluating {} target {}:\n{}", + rule_name, + key.ToShortString(Evaluator::GetExpressionLogLimit()), + msg), fatal); }); (it->second)( diff --git a/src/buildtool/build_engine/target_map/configured_target.hpp b/src/buildtool/build_engine/target_map/configured_target.hpp index 6f83d73d..dc1f981e 100644 --- a/src/buildtool/build_engine/target_map/configured_target.hpp +++ b/src/buildtool/build_engine/target_map/configured_target.hpp @@ -30,8 +30,6 @@ struct ConfiguredTarget { BuildMaps::Base::EntityName target; Configuration config; - static constexpr std::size_t kConfigLength = 320; - [[nodiscard]] auto operator==(BuildMaps::Target::ConfiguredTarget const& other) const noexcept -> bool { return target == other.target and config == other.config; @@ -41,11 +39,12 @@ struct ConfiguredTarget { return fmt::format("[{},{}]", target.ToString(), config.ToString()); } - [[nodiscard]] auto ToShortString() const noexcept -> std::string { + [[nodiscard]] auto ToShortString(std::size_t config_length) const noexcept + -> std::string { return fmt::format( "[{},{}]", target.ToString(), - AbbreviateJson(PruneJson(config.ToJson()), kConfigLength)); + AbbreviateJson(PruneJson(config.ToJson()), config_length)); } }; diff --git a/src/buildtool/build_engine/target_map/target_map.cpp b/src/buildtool/build_engine/target_map/target_map.cpp index 02aae13b..961cdc73 100644 --- a/src/buildtool/build_engine/target_map/target_map.cpp +++ b/src/buildtool/build_engine/target_map/target_map.cpp @@ -233,7 +233,7 @@ auto NameTransitionedDeps( auto conf = effective_conf.Update(transitioned_target.config.Expr()) .Prune(analysis->Vars()); return BuildMaps::Target::ConfiguredTarget{transitioned_target.target, conf} - .ToShortString(); + .ToShortString(Evaluator::GetExpressionLogLimit()); } // Check if an object is contained an expression; to avoid tree-unfolding @@ -1511,10 +1511,12 @@ void withTargetsFile( std::make_shared<AsyncMapConsumerLogger>( [logger, key, rn](auto const& msg, auto fatal) { (*logger)( - fmt::format("While analysing {} target {}:\n{}", - rn.ToString(), - key.ToShortString(), - msg), + fmt::format( + "While analysing {} target {}:\n{}", + rn.ToString(), + key.ToShortString( + Evaluator::GetExpressionLogLimit()), + msg), fatal); }), result_map); @@ -1970,7 +1972,8 @@ auto CreateTargetMap( [logger, key](auto msg, auto fatal) { (*logger)( fmt::format("While processing absent target {}:\n{}", - key.ToShortString(), + key.ToShortString( + Evaluator::GetExpressionLogLimit()), msg), fatal); }); diff --git a/src/buildtool/execution_engine/executor/TARGETS b/src/buildtool/execution_engine/executor/TARGETS index fc148d45..e2654ba9 100644 --- a/src/buildtool/execution_engine/executor/TARGETS +++ b/src/buildtool/execution_engine/executor/TARGETS @@ -5,6 +5,7 @@ , "deps": [ "context" , ["@", "gsl", "", "gsl"] + , ["src/buildtool/build_engine/expression", "expression"] , ["src/buildtool/common", "artifact_digest_factory"] , ["src/buildtool/common", "common"] , ["src/buildtool/common", "git_hashes_converter"] diff --git a/src/buildtool/execution_engine/executor/executor.hpp b/src/buildtool/execution_engine/executor/executor.hpp index 63ab96ba..a27f2215 100644 --- a/src/buildtool/execution_engine/executor/executor.hpp +++ b/src/buildtool/execution_engine/executor/executor.hpp @@ -28,6 +28,7 @@ #include <vector> #include "gsl/gsl" +#include "src/buildtool/build_engine/expression/evaluator.hpp" #include "src/buildtool/common/artifact_digest.hpp" #include "src/buildtool/common/artifact_digest_factory.hpp" #include "src/buildtool/common/git_hashes_converter.hpp" @@ -688,7 +689,8 @@ class ExecutorImpl { msg << "\nrequested by"; for (auto const& origin : origins->second) { msg << "\n - "; - msg << origin.first.ToShortString(); + msg << origin.first.ToShortString( + Evaluator::GetExpressionLogLimit()); msg << "#"; msg << origin.second; } diff --git a/src/buildtool/main/main.cpp b/src/buildtool/main/main.cpp index bada208a..a2bdb055 100644 --- a/src/buildtool/main/main.cpp +++ b/src/buildtool/main/main.cpp @@ -1125,7 +1125,8 @@ auto main(int argc, char* argv[]) -> int { if (result) { Logger::Log(LogLevel::Info, "Analysed target {}", - result->id.ToShortString()); + result->id.ToShortString( + Evaluator::GetExpressionLogLimit())); { auto cached = stats.ExportsCachedCounter(); @@ -1194,7 +1195,8 @@ auto main(int argc, char* argv[]) -> int { result->modified ? fmt::format(" input of action {} of", *(result->modified)) : "", - result->id.ToShortString()); + result->id.ToShortString( + Evaluator::GetExpressionLogLimit())); auto build_result = traverser.BuildAndStage(artifacts, |