@@ -254,7 +254,6 @@ class GnomeModule(ExtensionModule):
254254
255255 def __init__ (self , interpreter : 'Interpreter' ) -> None :
256256 super ().__init__ (interpreter )
257- self .gir_dep : T .Optional [Dependency ] = None
258257 self .giscanner : T .Optional [ToolType ] = None
259258 self .gicompiler : T .Optional [ToolType ] = None
260259 self .install_glib_compile_schemas = False
@@ -788,20 +787,18 @@ def postconf_hook(self, b: build.Build) -> None:
788787 if self .devenv is not None :
789788 b .devenv .append (self .devenv )
790789
791- def _get_gir_dep (self , state : 'ModuleState' ) -> T .Tuple [Dependency , T .Union [Executable , 'ExternalProgram' , 'OverrideProgram' ],
792- T .Union [Executable , 'ExternalProgram' , 'OverrideProgram' ]]:
793- if not self .gir_dep :
794- self .gir_dep = state .dependency ('gobject-introspection-1.0' )
795- self .giscanner = self ._find_tool (state , 'g-ir-scanner' )
796- self .gicompiler = self ._find_tool (state , 'g-ir-compiler' )
797- return self .gir_dep , self .giscanner , self .gicompiler
790+ def _get_gi (self , state : 'ModuleState' ) -> T .Tuple [ToolType , ToolType ]:
791+ if not self .giscanner :
792+ self .giscanner = self ._find_tool (state , 'g-ir-scanner' , for_machine = MachineChoice .BUILD )
793+ self .gicompiler = self ._find_tool (state , 'g-ir-compiler' , for_machine = MachineChoice .HOST )
794+ return self .giscanner , self .gicompiler
798795
799796 def _giscanner_version_compare (self , state : 'ModuleState' , cmp : str ) -> bool :
800797 # Support for --version was introduced in g-i 1.58, but Ubuntu
801798 # Bionic shipped 1.56.1. As all our version checks are greater
802799 # than 1.58, we can just return False if get_version fails.
803800 try :
804- giscanner , _ , _ = self ._get_gir_dep (state )
801+ giscanner , _ = self ._get_gi (state )
805802 return mesonlib .version_compare (giscanner .get_version (), cmp )
806803 except MesonException :
807804 return False
@@ -997,6 +994,8 @@ def _make_gir_target(
997994 run_env .set ('CFLAGS' , [quote_arg (x ) for x in env_flags ], ' ' )
998995 run_env .merge (kwargs ['env' ])
999996
997+ giscanner , _ = self ._get_gi (state )
998+
1000999 # response file supported?
10011000 rspable = self ._giscanner_version_compare (state , '>= 1.85.0' )
10021001
@@ -1150,7 +1149,7 @@ def generate_gir(self, state: 'ModuleState', args: T.Tuple[T.List[T.Union[Execut
11501149 if len (girtargets ) > 1 and any (isinstance (el , Executable ) for el in girtargets ):
11511150 raise MesonException ('generate_gir only accepts a single argument when one of the arguments is an executable' )
11521151
1153- gir_dep , giscanner , gicompiler = self ._get_gir_dep (state )
1152+ giscanner , gicompiler = self ._get_gi (state )
11541153
11551154 ns = kwargs ['namespace' ]
11561155 nsversion = kwargs ['nsversion' ]
@@ -1161,14 +1160,13 @@ def generate_gir(self, state: 'ModuleState', args: T.Tuple[T.List[T.Union[Execut
11611160 builddir = os .path .join (state .environment .get_build_dir (), state .subdir )
11621161
11631162 depends : T .List [T .Union ['FileOrString' , 'build.GeneratedTypes' , build .BuildTarget , build .StructuredSources ]] = []
1164- depends .extend (gir_dep .sources )
11651163 depends .extend (girtargets )
11661164
11671165 langs_compilers = self ._get_girtargets_langs_compilers (girtargets )
11681166 cflags , internal_ldflags , external_ldflags = self ._get_langs_compilers_flags (state , langs_compilers )
11691167 deps = self ._get_gir_targets_deps (girtargets )
11701168 deps += kwargs ['dependencies' ]
1171- deps += [gir_dep ]
1169+ deps += [state . dependency ( 'glib-2.0' ), state . dependency ( 'gobject-2.0' ), state . dependency ( 'gmodule-2.0' ), state . dependency ( 'gio-2.0' ) ]
11721170 typelib_includes , depends = self ._gather_typelib_includes_and_update_depends (state , deps , depends )
11731171 # ldflags will be misinterpreted by gir scanner (showing
11741172 # spurious dependencies) but building GStreamer fails if they
0 commit comments