aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/modules/gnome.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/modules/gnome.py')
-rw-r--r--mesonbuild/modules/gnome.py18
1 files changed, 12 insertions, 6 deletions
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
index c91cda6..ff4c681 100644
--- a/mesonbuild/modules/gnome.py
+++ b/mesonbuild/modules/gnome.py
@@ -35,6 +35,7 @@ from ..mesonlib import (
from ..dependencies import Dependency, PkgConfigDependency, InternalDependency
from ..interpreterbase import noPosargs, noKwargs, permittedKwargs, FeatureNew, FeatureNewKwargs, FeatureDeprecatedKwargs
from ..programs import ExternalProgram, OverrideProgram
+from ..build import CustomTarget, CustomTargetIndex, GeneratedList
if T.TYPE_CHECKING:
from ..compilers import Compiler
@@ -709,8 +710,9 @@ class GnomeModule(ExtensionModule):
return gir_filelist_filename
- def _make_gir_target(self, state, girfile, scan_command, depends, kwargs):
- scankwargs = {'output': girfile,
+ def _make_gir_target(self, state, girfile, scan_command, generated_files, depends, kwargs):
+ scankwargs = {'input': generated_files,
+ 'output': girfile,
'command': scan_command,
'depends': depends}
@@ -724,8 +726,9 @@ class GnomeModule(ExtensionModule):
return GirTarget(girfile, state.subdir, state.subproject, scankwargs)
- def _make_typelib_target(self, state, typelib_output, typelib_cmd, kwargs):
+ def _make_typelib_target(self, state, typelib_output, typelib_cmd, generated_files, kwargs):
typelib_kwargs = {
+ 'input': generated_files,
'output': typelib_output,
'command': typelib_cmd,
}
@@ -801,7 +804,7 @@ class GnomeModule(ExtensionModule):
'export_packages', 'includes', 'dependencies', 'link_with', 'include_directories',
'install', 'install_dir_gir', 'install_dir_typelib', 'extra_args',
'packages', 'header', 'build_by_default', 'fatal_warnings'})
- def generate_gir(self, state, args, kwargs):
+ def generate_gir(self, state, args, kwargs: T.Dict[str, T.Any]):
if not args:
raise MesonException('generate_gir takes at least one argument')
if kwargs.get('install_dir'):
@@ -881,7 +884,9 @@ class GnomeModule(ExtensionModule):
if fatal_warnings:
scan_command.append('--warn-error')
- scan_target = self._make_gir_target(state, girfile, scan_command, depends, kwargs)
+ generated_files = [unholder(f) for f in libsources if isinstance(unholder(f), (GeneratedList, CustomTarget, CustomTargetIndex))]
+
+ scan_target = self._make_gir_target(state, girfile, scan_command, generated_files, depends, kwargs)
typelib_output = f'{ns}-{nsversion}.typelib'
typelib_cmd = [gicompiler, scan_target, '--output', '@OUTPUT@']
@@ -890,7 +895,8 @@ class GnomeModule(ExtensionModule):
for incdir in typelib_includes:
typelib_cmd += ["--includedir=" + incdir]
- typelib_target = self._make_typelib_target(state, typelib_output, typelib_cmd, kwargs)
+ typelib_target = self._make_typelib_target(state, typelib_output, typelib_cmd, generated_files, kwargs)
+
self._devenv_append('GI_TYPELIB_PATH', os.path.join(state.environment.get_build_dir(), state.subdir))
rv = [scan_target, typelib_target]