aboutsummaryrefslogtreecommitdiffstats
path: root/common/command.cc
diff options
context:
space:
mode:
authorDavid Shah <dave@ds0.me>2018-11-26 19:14:38 +0000
committerDavid Shah <dave@ds0.me>2018-11-26 19:14:38 +0000
commit4a44bc569abde28b8c9d7440447295af683b92f4 (patch)
tree78b4c878958f1a1c6c81d5702d0cef5d8e1a0765 /common/command.cc
parent0adc0d75297fa81034aa3f325cf2758314ca1336 (diff)
downloadnextpnr-4a44bc569abde28b8c9d7440447295af683b92f4.tar.gz
nextpnr-4a44bc569abde28b8c9d7440447295af683b92f4.tar.bz2
nextpnr-4a44bc569abde28b8c9d7440447295af683b92f4.zip
Print warning and error count at end of execution
Signed-off-by: David Shah <dave@ds0.me>
Diffstat (limited to 'common/command.cc')
-rw-r--r--common/command.cc15
1 files changed, 14 insertions, 1 deletions
diff --git a/common/command.cc b/common/command.cc
index 6cc9fbe7..206a4d30 100644
--- a/common/command.cc
+++ b/common/command.cc
@@ -36,6 +36,7 @@
#include "jsonparse.h"
#include "log.h"
#include "timing.h"
+#include "util.h"
#include "version.h"
NEXTPNR_NAMESPACE_BEGIN
@@ -282,6 +283,15 @@ void CommandHandler::conflicting_options(const boost::program_options::variables
}
}
+void CommandHandler::printFooter()
+{
+ int warning_count = get_or_default(message_count_by_level, LogLevel::WARNING, 0),
+ error_count = get_or_default(message_count_by_level, LogLevel::ERROR, 0);
+ if (warning_count > 0 || error_count > 0)
+ log_always("%d warning%s, %d error%s\n", warning_count, warning_count == 1 ? "" : "s", error_count,
+ error_count == 1 ? "" : "s");
+}
+
int CommandHandler::exec()
{
try {
@@ -300,8 +310,11 @@ int CommandHandler::exec()
settings = std::unique_ptr<Settings>(new Settings(ctx.get()));
setupContext(ctx.get());
setupArchContext(ctx.get());
- return executeMain(std::move(ctx));
+ int rc = executeMain(std::move(ctx));
+ printFooter();
+ return rc;
} catch (log_execution_error_exception) {
+ printFooter();
return -1;
}
}