gnome: use the devenv to run g-ir-scanner

fix #1181
pull/12780/head
Andoni Morales Alastruey 1 year ago
parent 2936be7e29
commit 4d4747ce0b
  1. 10
      mesonbuild/modules/gnome.py

@ -957,6 +957,7 @@ class GnomeModule(ExtensionModule):
scan_command: T.Sequence[T.Union['FileOrString', Executable, ExternalProgram, OverrideProgram]],
generated_files: T.Sequence[T.Union[str, mesonlib.File, CustomTarget, CustomTargetIndex, GeneratedList]],
depends: T.Sequence[T.Union['FileOrString', build.BuildTarget, 'build.GeneratedTypes', build.StructuredSources]],
devenv: mesonlib.EnvironmentVariables,
kwargs: T.Dict[str, T.Any]) -> GirTarget:
install = kwargs['install_gir']
if install is None:
@ -978,6 +979,13 @@ class GnomeModule(ExtensionModule):
cc_exelist = state.environment.coredata.compilers.host['c'].get_exelist()
run_env.set('CC', [quote_arg(x) for x in cc_exelist], ' ')
run_env.merge(kwargs['env'])
# g-ir-scanner must use the uninstalled libraries rather than the system ones
# to generate the introspection data.
ospathvar = os.environ.get('PATH', None)
if ospathvar is not None:
pathvar = devenv.get_env({'PATH': ospathvar})['PATH'].split(os.pathsep)
devenv.set('PATH', pathvar)
run_env.merge(devenv)
return GirTarget(
girfile,
@ -1211,7 +1219,7 @@ class GnomeModule(ExtensionModule):
generated_files = [f for f in libsources if isinstance(f, (GeneratedList, CustomTarget, CustomTargetIndex))]
scan_target = self._make_gir_target(
state, girfile, scan_command, generated_files, depends,
state, girfile, scan_command, generated_files, depends, self.interpreter.backend.get_devenv(),
# We have to cast here because mypy can't figure this out
T.cast('T.Dict[str, T.Any]', kwargs))

Loading…
Cancel
Save