At the moment, missing optional dependencies will be silently ignored when the corresponding configuration flag is 'true', and won't be tested for when the flag is 'false'. In the autotools build, this corresponds respectively to --enable-foo=auto and --disable-foo. Having a way to get an error when the package is enabled but missing is quite desirable. f52247384 has some half-baked attempt at that, but this was supposed to be removed from the series. This causes errors when processing meson.build, breaking the meson build. This commit adds 'true'/'false'/'auto' in a proper way. --- "meson: Remove '(default: xxx)' from option description" which I sent earlier needs to be applied before that patch. I can rebase on top of master if that's better for review. meson.build | 23 ++++++++++------------- meson_options.txt | 10 ++++++---- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/meson.build b/meson.build index 4386c83..cb8a1ee 100644 --- a/meson.build +++ b/meson.build @@ -115,22 +115,19 @@ endforeach # # Check deps which are optional but enabled by default. This foreach block only # checks the option, and adds the package to the deps list, while the real check -# for the dependency is done in the foeach block below. +# for the dependency is done in the foreach block below. optional_deps = [ - ['celt051', '>= 0.5.1.1', false, 'HAVE_CELT051'], - ['opus', '>= 0.9.14', true, 'HAVE_OPUS'], + ['celt051', '>= 0.5.1.1', 'HAVE_CELT051'], + ['opus', '>= 0.9.14', 'HAVE_OPUS'], ] foreach dep : optional_deps - if get_option(dep[0]) - deps += [dep] - endif -endforeach - -foreach dep : deps - d = dependency(dep[0], required : dep[2], version : dep[1]) - if d.found() - spice_common_deps += d - spice_common_config_data.set(dep[3], '1') + option_value = get_option(dep[0]) + if option_value != 'false' + d = dependency(dep[0], required: (option_value == 'true'), version : dep[1]) + if d.found() + spice_common_deps += d + spice_common_config_data.set(dep[2], '1') + endif endif endforeach diff --git a/meson_options.txt b/meson_options.txt index 84cc56d..ac9eefa 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -11,13 +11,15 @@ option('extra-checks', description : 'Enable extra checks on code') option('celt051', - type : 'boolean', - value : false, + type : 'combo', + choices : ['true', 'false', 'auto'], + value : 'auto', description: 'Enable celt051 audio codec') option('opus', - type : 'boolean', - value : true, + type : 'combo', + choices : ['true', 'false', 'auto'], + value : 'true', description: 'Enable Opus audio codec') option('python-checks', -- 2.17.1 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel