From 26fc0cfcede1e36a45557f19a0696c2337c5a9cc Mon Sep 17 00:00:00 2001 From: Thomas Nagy Date: Mon, 15 Aug 2016 22:48:29 +0200 Subject: [PATCH] Enhance the display of parallel configuration tests --- ChangeLog | 7 +++++++ demos/c/wscript | 8 ++++---- waflib/Tools/c_config.py | 17 +++++++++++++++-- 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 18e2cf30..4bfef91e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +NEW IN WAF 1.9.3 +---------------- +* Enable configuration task class lookup in conf.multicheck +* Enable individual output lines in conf.multicheck +* Updated examples for stripping executables +* More documentation + NEW IN WAF 1.9.2 ---------------- * Fix a Python 3 encoding error when displaying the file hash in 'waf dist' #1769 diff --git a/demos/c/wscript b/demos/c/wscript index 25eb2270..dbcd937f 100644 --- a/demos/c/wscript +++ b/demos/c/wscript @@ -36,10 +36,10 @@ def configure(conf): conf.check_endianness() conf.multicheck( - {'header_name':'stdio.h'}, - {'header_name':'unistd.h'}, - {'header_name':'stdlib.h'}, - msg = 'Checking for standard headers', + {'header_name':'stdio.h', 'msg':'... stdio'}, + {'header_name':'unistd.h', 'msg':'... unistd'}, + {'header_name':'stdlib.h', 'msg':'... stdlib', 'okmsg': 'aye', 'errmsg': 'nope'}, + msg = 'Checking for headers in parallel', mandatory = False ) conf.check_cc(header_name='stdio.h', auto_add_header_name=True) diff --git a/waflib/Tools/c_config.py b/waflib/Tools/c_config.py index c716481f..e5226098 100644 --- a/waflib/Tools/c_config.py +++ b/waflib/Tools/c_config.py @@ -1318,10 +1318,23 @@ def multicheck(self, *k, **kw): self.end_msg('fail', color='RED') raise Errors.WafError('There is an error in the library, read config.log for more information') + for x in tasks: + if x.hasrun != Task.SUCCESS: + self.end_msg(kw.get('errmsg', 'no'), color='YELLOW', **kw) + break + else: + self.end_msg('ok', **kw) + + # optional output lines on msg/okmsg/errmsg + for x in tasks: + if 'msg' in x.args: + self.start_msg(x.args['msg']) + if x.hasrun != Task.SUCCESS: + self.end_msg(x.args.get('errmsg', 'no'), 'YELLOW') + else: + self.end_msg(x.args.get('okmsg', 'yes'), 'GREEN') for x in tasks: if x.hasrun != Task.SUCCESS: self.end_msg(kw.get('errmsg', 'no'), color='YELLOW', **kw) self.fatal(kw.get('fatalmsg') or 'One of the tests has failed, read config.log for more information') - self.end_msg('ok', **kw) -