From 07d2331d2354d27d895d926c5c8a8636f93077db Mon Sep 17 00:00:00 2001 From: Xavier Claessens <xavier.claessens@collabora.com> Date: Tue, 16 Jun 2020 14:42:29 -0400 Subject: interpreter: Allow dependecy or subproject name in force_fallback_for --- mesonbuild/interpreter.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'mesonbuild/interpreter.py') diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 7849c81..76c8254 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -3572,7 +3572,9 @@ external dependencies (including libraries) must go to "dependencies".''') wrap_mode = self.coredata.get_builtin_option('wrap_mode') force_fallback_for = self.coredata.get_builtin_option('force_fallback_for') - forcefallback = (wrap_mode == WrapMode.forcefallback or name in force_fallback_for) and has_fallback + forcefallback = has_fallback and (wrap_mode == WrapMode.forcefallback or \ + name in force_fallback_for or \ + dirname in force_fallback_for) if name != '' and not forcefallback: self._handle_featurenew_dependencies(name) kwargs['required'] = required and not has_fallback @@ -3625,11 +3627,13 @@ external dependencies (including libraries) must go to "dependencies".''') return fbinfo def dependency_fallback(self, name, display_name, kwargs): + dirname, varname = self.get_subproject_infos(kwargs) required = kwargs.get('required', True) # Explicitly listed fallback preferences for specific subprojects # take precedence over wrap-mode - if name in self.coredata.get_builtin_option('force_fallback_for'): + force_fallback_for = self.coredata.get_builtin_option('force_fallback_for') + if name in force_fallback_for or dirname in force_fallback_for: mlog.log('Looking for a fallback subproject for the dependency', mlog.bold(display_name), 'because:\nUse of fallback was forced for that specific subproject') elif self.coredata.get_builtin_option('wrap_mode') == WrapMode.nofallback: @@ -3646,7 +3650,6 @@ external dependencies (including libraries) must go to "dependencies".''') else: mlog.log('Looking for a fallback subproject for the dependency', mlog.bold(display_name)) - dirname, varname = self.get_subproject_infos(kwargs) sp_kwargs = { 'default_options': kwargs.get('default_options', []), 'required': required, -- cgit v1.1