1# Test that dependencies with their own generated sources don't
2# confuse the Vala build instruction generator.
3
4# Test case for https://github.com/mesonbuild/meson/issues/1084
5
6gnome = import('gnome')
7
8gobject = dependency('gobject-2.0')
9
10enums = gnome.mkenums('enum-types',
11    sources: 'enums.h',
12    c_template: 'enum-types.c.template',
13    h_template: 'enum-types.h.template',
14)
15
16libcommon = library('common',
17    enums[0], enums[1],
18    dependencies: gobject)
19
20common_dep = declare_dependency(
21    # This is required so that whoever depends on this also depends
22    # on the generated header; that won't happen implicitly.
23    # See: https://github.com/mesonbuild/meson/issues/1084
24    sources: enums[1],
25    link_with: libcommon,
26)
27
28libplover_vala = library('plover',
29    'lib.vala',
30    dependencies: [common_dep, gobject]
31)
32
33plover_dep = declare_dependency(
34    link_with: libplover_vala,
35    dependencies: common_dep
36)
37
38vala_prog = executable('hello',
39    'main.vala',
40    link_with: libplover_vala,
41    # There's no need to specify common_dep here since plover_dep pulls it
42    # in, but it should be harmless to do so.
43    dependencies: [common_dep, plover_dep, gobject]
44)
45