modules/gnome: fix missing install_dir, again, harder

It turns out this could be missing in GResource*Target as well, due
mostly to the same problem, side effects of mutating a shared
dictionary; though it could also happen with a specific set of keywords
given and other omitted.

Fixes #9350
pull/9667/head
Dylan Baker 3 years ago committed by Nirbheek Chauhan
parent c9adc06699
commit 5066751b57
  1. 18
      mesonbuild/modules/gnome.py

@ -278,18 +278,20 @@ class GnomeModule(ExtensionModule):
if install_header and not export:
raise MesonException('GResource header is installed yet export is not enabled')
kwargs['input'] = args[1]
kwargs['output'] = output
kwargs['depends'] = depends
c_kwargs = kwargs.copy()
c_kwargs['input'] = args[1]
c_kwargs['output'] = output
c_kwargs['depends'] = depends
c_kwargs.setdefault('install_dir', [])
if not mesonlib.version_compare(glib_version, gresource_dep_needed_version):
# This will eventually go out of sync if dependencies are added
kwargs['depend_files'] = depend_files
kwargs['command'] = cmd
c_kwargs['depend_files'] = depend_files
c_kwargs['command'] = cmd
else:
depfile = f'{output}.d'
kwargs['depfile'] = depfile
kwargs['command'] = copy.copy(cmd) + ['--dependency-file', '@DEPFILE@']
target_c = GResourceTarget(name, state.subdir, state.subproject, kwargs)
c_kwargs['depfile'] = depfile
c_kwargs['command'] = copy.copy(cmd) + ['--dependency-file', '@DEPFILE@']
target_c = GResourceTarget(name, state.subdir, state.subproject, c_kwargs)
if gresource: # Only one target for .gresource files
return ModuleReturnValue(target_c, [target_c])

Loading…
Cancel
Save