diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/buildtool/profile/profile.cpp | 8 | ||||
-rw-r--r-- | src/buildtool/profile/profile.hpp | 3 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/buildtool/profile/profile.cpp b/src/buildtool/profile/profile.cpp index 6e7e8d47..f37629f1 100644 --- a/src/buildtool/profile/profile.cpp +++ b/src/buildtool/profile/profile.cpp @@ -47,6 +47,9 @@ void Profile::Write(int exit_code) { } profile_["exit code"] = exit_code; + if (not analysis_errors_.empty()) { + profile_["analysis errors"] = analysis_errors_; + } std::ofstream os(*output_file_); os << profile_.dump(2) << std::endl; @@ -148,3 +151,8 @@ void Profile::NoteActionCompleted(std::string const& id, } } } + +void Profile::NoteAnalysisError(std::string const& error_message) { + std::unique_lock lock{mutex_}; + analysis_errors_.emplace_back(error_message); +} diff --git a/src/buildtool/profile/profile.hpp b/src/buildtool/profile/profile.hpp index 9067a309..d172ae85 100644 --- a/src/buildtool/profile/profile.hpp +++ b/src/buildtool/profile/profile.hpp @@ -21,6 +21,7 @@ #include <string> #include <unordered_map> #include <utility> +#include <vector> #include "nlohmann/json.hpp" #include "src/buildtool/execution_api/common/execution_response.hpp" @@ -40,6 +41,7 @@ class Profile { void NoteActionCompleted(std::string const& id, IExecutionResponse::Ptr const& response, std::string const& cwd); + void NoteAnalysisError(std::string const& error_message); private: struct ActionData { @@ -54,6 +56,7 @@ class Profile { std::optional<std::string> output_file_; nlohmann::json profile_; std::unordered_map<std::string, ActionData> actions_; + std::vector<std::string> analysis_errors_; std::mutex mutex_; void SetCLI(CommandLineArguments const& cli); |