diff options
Diffstat (limited to 'mesonbuild')
-rw-r--r-- | mesonbuild/dependencies/base.py | 6 | ||||
-rw-r--r-- | mesonbuild/interpreter.py | 44 | ||||
-rw-r--r-- | mesonbuild/mintro.py | 1 | ||||
-rw-r--r-- | mesonbuild/mlog.py | 15 |
4 files changed, 42 insertions, 24 deletions
diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py index 99ae29d..1666e0c 100644 --- a/mesonbuild/dependencies/base.py +++ b/mesonbuild/dependencies/base.py @@ -2154,15 +2154,13 @@ def find_external_dependency(name, env, kwargs): info = [] if d.version: - info.append(d.version) + info.append(mlog.normal_cyan(d.version)) log_info = d.log_info() if log_info: info.append('(' + log_info + ')') - info = ' '.join(info) - - mlog.log(type_text, mlog.bold(display_name), details + 'found:', mlog.green('YES'), info) + mlog.log(type_text, mlog.bold(display_name), details + 'found:', mlog.green('YES'), *info) return d diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 4ec6628..3179fb4 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -1191,7 +1191,7 @@ class CompilerHolder(InterpreterObject): self.environment, extra_args=extra_args, dependencies=deps) - cached = '(cached)' if cached else '' + cached = mlog.blue('(cached)') if cached else '' if had: hadtxt = mlog.green('YES') else: @@ -1221,7 +1221,7 @@ class CompilerHolder(InterpreterObject): self.environment, extra_args=extra_args, dependencies=deps) - cached = '(cached)' if cached else '' + cached = mlog.blue('(cached)') if cached else '' if had: hadtxt = mlog.green('YES') else: @@ -1251,7 +1251,7 @@ class CompilerHolder(InterpreterObject): had, cached = self.compiler.has_function(funcname, prefix, self.environment, extra_args=extra_args, dependencies=deps) - cached = '(cached)' if cached else '' + cached = mlog.blue('(cached)') if cached else '' if had: hadtxt = mlog.green('YES') else: @@ -1278,7 +1278,7 @@ class CompilerHolder(InterpreterObject): deps, msg = self.determine_dependencies(kwargs) had, cached = self.compiler.has_type(typename, prefix, self.environment, extra_args=extra_args, dependencies=deps) - cached = '(cached)' if cached else '' + cached = mlog.blue('(cached)') if cached else '' if had: hadtxt = mlog.green('YES') else: @@ -1365,7 +1365,7 @@ class CompilerHolder(InterpreterObject): value, cached = self.compiler.get_define(element, prefix, self.environment, extra_args=extra_args, dependencies=deps) - cached = '(cached)' if cached else '' + cached = mlog.blue('(cached)') if cached else '' mlog.log('Fetching value of define', mlog.bold(element, True), msg, value, cached) return value @@ -1398,7 +1398,7 @@ class CompilerHolder(InterpreterObject): h = mlog.green('YES') else: h = mlog.red('NO') - cached = '(cached)' if cached else '' + cached = mlog.blue('(cached)') if cached else '' mlog.log('Checking if', mlog.bold(testname, True), msg, 'compiles:', h, cached) return result @@ -1426,7 +1426,7 @@ class CompilerHolder(InterpreterObject): result, cached = self.compiler.links(code, self.environment, extra_args=extra_args, dependencies=deps) - cached = '(cached)' if cached else '' + cached = mlog.blue('(cached)') if cached else '' if len(testname) > 0: if result: h = mlog.green('YES') @@ -1455,7 +1455,7 @@ class CompilerHolder(InterpreterObject): haz, cached = self.compiler.check_header(hname, prefix, self.environment, extra_args=extra_args, dependencies=deps) - cached = '(cached)' if cached else '' + cached = mlog.blue('(cached)') if cached else '' if required and not haz: raise InterpreterException('{} header {!r} not usable'.format(self.compiler.get_display_language(), hname)) elif haz: @@ -1483,7 +1483,7 @@ class CompilerHolder(InterpreterObject): deps, msg = self.determine_dependencies(kwargs) haz, cached = self.compiler.has_header(hname, prefix, self.environment, extra_args=extra_args, dependencies=deps) - cached = '(cached)' if cached else '' + cached = mlog.blue('(cached)') if cached else '' if required and not haz: raise InterpreterException('{} header {!r} not found'.format(self.compiler.get_display_language(), hname)) elif haz: @@ -1518,7 +1518,7 @@ class CompilerHolder(InterpreterObject): h = mlog.green('YES') else: h = mlog.red('NO') - cached = '(cached)' if cached else '' + cached = mlog.blue('(cached)') if cached else '' mlog.log('Header <{0}> has symbol'.format(hname), mlog.bold(symbol, True), msg, h, cached) return haz @@ -1593,7 +1593,7 @@ class CompilerHolder(InterpreterObject): h = mlog.green('YES') else: h = mlog.red('NO') - cached = '(cached)' if cached else '' + cached = mlog.blue('(cached)') if cached else '' mlog.log( 'Compiler for {} supports arguments {}:'.format( self.compiler.get_display_language(), ' '.join(args)), @@ -1632,7 +1632,7 @@ class CompilerHolder(InterpreterObject): def has_multi_link_arguments_method(self, args, kwargs): args = mesonlib.stringlistify(args) result, cached = self.compiler.has_multi_link_arguments(args, self.environment) - cached = '(cached)' if cached else '' + cached = mlog.blue('(cached)') if cached else '' if result: h = mlog.green('YES') else: @@ -1670,7 +1670,7 @@ class CompilerHolder(InterpreterObject): if len(args) != 1: raise InterpreterException('has_func_attribute takes exactly one argument.') result, cached = self.compiler.has_func_attribute(args[0], self.environment) - cached = '(cached)' if cached else '' + cached = mlog.blue('(cached)') if cached else '' h = mlog.green('YES') if result else mlog.red('NO') mlog.log('Compiler for {} supports function attribute {}:'.format(self.compiler.get_display_language(), args[0]), h, cached) return result @@ -3000,15 +3000,18 @@ external dependencies (including libraries) must go to "dependencies".''') if cached_dep: if not cached_dep.found(): mlog.log('Dependency', mlog.bold(name), - 'found:', mlog.red('NO'), '(cached)') + 'found:', mlog.red('NO'), mlog.blue('(cached)')) return identifier, cached_dep # Verify the cached dep version match - wanted = kwargs.get('version', []) - found = cached_dep.get_version() - if not wanted or mesonlib.version_compare_many(found, wanted)[0]: + wanted_vers = kwargs.get('version', []) + found_vers = cached_dep.get_version() + if not wanted_vers or mesonlib.version_compare_many(found_vers, wanted_vers)[0]: + info = [mlog.blue('(cached)')] + if found_vers: + info = [mlog.normal_cyan(found_vers), *info] mlog.log('Dependency', mlog.bold(name), - 'found:', mlog.green('YES'), '(cached)') + 'found:', mlog.green('YES'), *info) return identifier, cached_dep return identifier, None @@ -3058,12 +3061,13 @@ external dependencies (including libraries) must go to "dependencies".''') 'dep {}'.format(found, dirname, wanted, display_name)) mlog.log('Subproject', mlog.bold(subproj_path), 'dependency', - mlog.bold(display_name), 'version is', mlog.bold(found), + mlog.bold(display_name), 'version is', mlog.normal_cyan(found), 'but', mlog.bold(wanted), 'is required.') return self.notfound_dependency() + found = mlog.normal_cyan(found) if found else None mlog.log('Dependency', mlog.bold(display_name), 'from subproject', - mlog.bold(subproj_path), 'found:', mlog.green('YES')) + mlog.bold(subproj_path), 'found:', mlog.green('YES'), found) return dep def _handle_featurenew_dependencies(self, name): diff --git a/mesonbuild/mintro.py b/mesonbuild/mintro.py index b95a224..fb34b5a 100644 --- a/mesonbuild/mintro.py +++ b/mesonbuild/mintro.py @@ -299,6 +299,7 @@ def list_deps(coredata: cdata.CoreData): for d in coredata.deps.host.values(): if d.found(): result += [{'name': d.name, + 'version': d.get_version(), 'compile_args': d.get_compile_args(), 'link_args': d.get_link_args()}] return result diff --git a/mesonbuild/mlog.py b/mesonbuild/mlog.py index 416e683..14ad92f 100644 --- a/mesonbuild/mlog.py +++ b/mesonbuild/mlog.py @@ -127,6 +127,21 @@ def blue(text: str) -> AnsiDecorator: def cyan(text: str) -> AnsiDecorator: return AnsiDecorator(text, "\033[1;36m") +def normal_red(text: str) -> AnsiDecorator: + return AnsiDecorator(text, "\033[31m") + +def normal_green(text: str) -> AnsiDecorator: + return AnsiDecorator(text, "\033[32m") + +def normal_yellow(text: str) -> AnsiDecorator: + return AnsiDecorator(text, "\033[33m") + +def normal_blue(text: str) -> AnsiDecorator: + return AnsiDecorator(text, "\033[34m") + +def normal_cyan(text: str) -> AnsiDecorator: + return AnsiDecorator(text, "\033[36m") + # This really should be AnsiDecorator or anything that implements # __str__(), but that requires protocols from typing_extensions def process_markup(args: Sequence[Union[AnsiDecorator, str]], keep: bool) -> List[str]: |