diff options
author | Thibault Saunier <tsaunier@igalia.com> | 2019-08-15 21:56:21 -0400 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2019-08-17 12:07:20 +0300 |
commit | edec2ee0eeccbe9774d15aee56d492438248fbb4 (patch) | |
tree | defc336d3056559193c5703dc33e58029a6803d5 /mesonbuild/modules/gnome.py | |
parent | fd7e8c540063870391e6ce75aa0fb179180fa057 (diff) | |
download | meson-edec2ee0eeccbe9774d15aee56d492438248fbb4.zip meson-edec2ee0eeccbe9774d15aee56d492438248fbb4.tar.gz meson-edec2ee0eeccbe9774d15aee56d492438248fbb4.tar.bz2 |
gnome: Handle overriden g-ir-scanner
When g-ir-scanner is overriden, we can't call it at configure time
but we know what options are avalaible (as it started using meson
after checked options where added) so do not try to call it to retrieve
the version as it will fail.
Also see https://github.com/mesonbuild/meson/issues/3442
Diffstat (limited to 'mesonbuild/modules/gnome.py')
-rw-r--r-- | mesonbuild/modules/gnome.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py index dc5ef20..4e97d3a 100644 --- a/mesonbuild/modules/gnome.py +++ b/mesonbuild/modules/gnome.py @@ -54,8 +54,14 @@ def gir_has_option(intr_obj, option): _gir_has_option[option] = False try: - g_ir_scanner = intr_obj.find_program_impl('g-ir-scanner').get_command() - opts = Popen_safe(g_ir_scanner + ['--help'], stderr=subprocess.STDOUT)[1] + g_ir_scanner = intr_obj.find_program_impl('g-ir-scanner') + # Handle overriden g-ir-scanner + if isinstance(getattr(g_ir_scanner, "held_object", g_ir_scanner), interpreter.OverrideProgram): + assert option in ['--extra-library', '--sources-top-dirs'] + _gir_has_option[option] = True + return True + + opts = Popen_safe(g_ir_scanner.get_command() + ['--help'], stderr=subprocess.STDOUT)[1] _gir_has_option[option] = option in opts except (MesonException, FileNotFoundError, subprocess.CalledProcessError): pass |