meson: improve summary of auto-detected features

The summary of auto-detected features prints a boolean for every option
to tell the user whether or not the feature has been auto-enabled or
not. This summary can be improved though, as in some cases this boolean
is derived from a dependency. So if we pass in the dependency directly,
then Meson knows to both print a boolean and, if the dependency was
found, it also prints a version number.

Adapt the code accordingly and enable `bool_yn` so that actual booleans
are formatted similarly to dependencies. Before this change:

  Auto-detected features
    benchmarks      : true
    curl            : true
    expat           : true
    gettext         : true
    gitweb          : true
    iconv           : true
    pcre2           : true
    perl            : true
    python          : true

And after this change, we now see the version numbers as expected:

  Auto-detected features
    benchmarks      : YES
    curl            : YES 8.14.1
    expat           : YES 2.7.1
    gettext         : YES
    gitweb          : YES
    iconv           : YES
    pcre2           : YES 10.44
    perl            : YES
    python          : YES

Note that this change also enables colorization of the boolean options,
green for "YES" and red for "NO".

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Patrick Steinhardt
2025-07-09 08:23:37 +02:00
committed by Junio C Hamano
parent f61f538576
commit dfc4617a53

View File

@@ -2184,15 +2184,15 @@ meson.add_dist_script(
summary({
'benchmarks': get_option('tests') and perl.found() and time.found(),
'curl': curl.found(),
'expat': expat.found(),
'gettext': intl.found(),
'curl': curl,
'expat': expat,
'gettext': intl,
'gitweb': gitweb_option.allowed(),
'iconv': iconv.found(),
'pcre2': pcre2.found(),
'iconv': iconv,
'pcre2': pcre2,
'perl': perl_features_enabled,
'python': target_python.found(),
}, section: 'Auto-detected features')
}, section: 'Auto-detected features', bool_yn: true)
summary({
'csprng': csprng_backend,