diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2020-06-16 14:42:29 -0400 |
---|---|---|
committer | Xavier Claessens <xclaesse@gmail.com> | 2020-06-16 17:36:33 -0400 |
commit | 07d2331d2354d27d895d926c5c8a8636f93077db (patch) | |
tree | 37542c25f393d04f8791067c0d7a3c1252162305 /mesonbuild/interpreter.py | |
parent | 972cac13f4220eeb58569f880991a6dd64d82ce0 (diff) | |
download | meson-07d2331d2354d27d895d926c5c8a8636f93077db.zip meson-07d2331d2354d27d895d926c5c8a8636f93077db.tar.gz meson-07d2331d2354d27d895d926c5c8a8636f93077db.tar.bz2 |
interpreter: Allow dependecy or subproject name in force_fallback_for
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r-- | mesonbuild/interpreter.py | 9 |
1 files changed, 6 insertions, 3 deletions
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, |