From e39d570d3a6a32df16d3fc871a5c2220ea74ab0f Mon Sep 17 00:00:00 2001 From: Daniel Mensinger Date: Thu, 14 Nov 2019 17:05:18 +0100 Subject: mlog: add non bold version of colors --- mesonbuild/mlog.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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]: -- cgit v1.1 From f8ba76cc2259345c7620525797e7b41cbf58b485 Mon Sep 17 00:00:00 2001 From: Daniel Mensinger Date: Thu, 14 Nov 2019 17:15:59 +0100 Subject: dependencies: Print version of cached dependencies --- mesonbuild/interpreter.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index b81b9f5..1ec663a 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -3002,11 +3002,14 @@ external dependencies (including libraries) must go to "dependencies".''') 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 -- cgit v1.1 From 2e62d6a20382f3cd4c4eb60104921e18a963b533 Mon Sep 17 00:00:00 2001 From: Daniel Mensinger Date: Thu, 14 Nov 2019 17:19:42 +0100 Subject: Highlight '(cached)' and add color to the dependency version --- mesonbuild/dependencies/base.py | 6 ++---- mesonbuild/interpreter.py | 33 +++++++++++++++++---------------- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py index e2ee092..b190414 100644 --- a/mesonbuild/dependencies/base.py +++ b/mesonbuild/dependencies/base.py @@ -2197,15 +2197,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 1ec663a..72370ed 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 @@ -2998,7 +2998,7 @@ 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 @@ -3059,12 +3059,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): -- cgit v1.1 From c361181cd9d6eeea24a1f8ad94772f4cce132692 Mon Sep 17 00:00:00 2001 From: Daniel Mensinger Date: Thu, 14 Nov 2019 17:29:34 +0100 Subject: mintro: dependencies: added version key --- docs/markdown/IDE-integration.md | 4 ++-- docs/markdown/snippets/introspect.md | 4 ++++ mesonbuild/mintro.py | 1 + run_unittests.py | 1 + 4 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 docs/markdown/snippets/introspect.md diff --git a/docs/markdown/IDE-integration.md b/docs/markdown/IDE-integration.md index 0c4f819..8e634aa 100644 --- a/docs/markdown/IDE-integration.md +++ b/docs/markdown/IDE-integration.md @@ -192,8 +192,8 @@ in a real meson run. Because of this options for the subprojects can differ. ## The dependencies section The list of all _found_ dependencies can be acquired from -`intro-dependencies.json`. Here, the name, compiler and linker arguments for -a dependency are listed. +`intro-dependencies.json`. Here, the name, version, compiler and linker +arguments for a dependency are listed. ### Scanning for dependecie with `--scan-dependencies` diff --git a/docs/markdown/snippets/introspect.md b/docs/markdown/snippets/introspect.md new file mode 100644 index 0000000..4d9fab2 --- /dev/null +++ b/docs/markdown/snippets/introspect.md @@ -0,0 +1,4 @@ +## Introspection API changes + +dependencies (--dependencies, intro-dependencies.json): +- added the `version` key 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/run_unittests.py b/run_unittests.py index 7d0b624..6e18604 100755 --- a/run_unittests.py +++ b/run_unittests.py @@ -3820,6 +3820,7 @@ recommended as it is not supported on some platforms''') dependencies_typelist = [ ('name', str), + ('version', str), ('compile_args', list), ('link_args', list), ] -- cgit v1.1