Skip to content

Commit

Permalink
modules/gnome: ensure that install_dir is set
Browse files Browse the repository at this point in the history
The `mkenums` functions can have this unset if, and only if, the
c file only variant is called. Due to side effects if the header file is
generated then `install_dir` is ensured to be set for the c file. I have
removed this side effect so that our tests actually cover this case.

Fixes #9472
  • Loading branch information
dcbaker authored and xclaesse committed Oct 28, 2021
1 parent 3902bd4 commit ae35b1f
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 11 deletions.
22 changes: 14 additions & 8 deletions mesonbuild/modules/gnome.py
Expand Up @@ -1434,13 +1434,16 @@ def mkenums(self, state, args, kwargs):
# so --template consumes it.
h_cmd = cmd + ['--template', '@INPUT@']
h_sources = [h_template] + sources
custom_kwargs['install'] = install_header
if 'install_dir' not in custom_kwargs:
custom_kwargs['install_dir'] = \

# Copy so we don't mutate the arguments for the c_template
h_kwargs = custom_kwargs.copy()
h_kwargs['install'] = install_header
if 'install_dir' not in h_kwargs:
h_kwargs['install_dir'] = \
state.environment.coredata.get_option(mesonlib.OptionKey('includedir'))
h_target = self._make_mkenum_custom_target(state, h_sources,
h_output, h_cmd,
custom_kwargs)
h_kwargs)
targets.append(h_target)

if c_template is not None:
Expand All @@ -1449,16 +1452,19 @@ def mkenums(self, state, args, kwargs):
# so --template consumes it.
c_cmd = cmd + ['--template', '@INPUT@']
c_sources = [c_template] + sources

c_kwargs = custom_kwargs.copy()
# Never install the C file. Complain on bug tracker if you need it.
custom_kwargs['install'] = False
c_kwargs['install'] = False
c_kwargs['install_dir'] = False
if h_template is not None:
if 'depends' in custom_kwargs:
custom_kwargs['depends'] += [h_target]
c_kwargs['depends'] += [h_target]
else:
custom_kwargs['depends'] = h_target
c_kwargs['depends'] = h_target
c_target = self._make_mkenum_custom_target(state, c_sources,
c_output, c_cmd,
custom_kwargs)
c_kwargs)
targets.insert(0, c_target)

if c_template is None and h_template is None:
Expand Down
6 changes: 3 additions & 3 deletions test cases/frameworks/7 gnome/mkenums/meson.build
Expand Up @@ -34,9 +34,9 @@ enums_c2 = gnome.mkenums('abc2',
sources : 'meson-sample.h',
depends : [enums_h1, enums_h2],
c_template : 'enums2.c.in',
ftail : '/* trailing source file info */',
install_header : true,
install_dir : get_option('includedir'))
ftail : '/* trailing source file info */')
# explicitly don't set install_dir here, for bug testing
# See https://github.com/mesonbuild/meson/issues/9472

conf = configuration_data()
conf.set('ENUM_FILE', 'enums2.h')
Expand Down

0 comments on commit ae35b1f

Please sign in to comment.