aboutsummaryrefslogtreecommitdiffstats
path: root/meson/test cases/frameworks/7 gnome/gir/meson.build
blob: 64c49f7297a50b8f7c76a85f07166b962c22b612 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
subdir('dep1')

libsources = ['meson-sample.c', 'meson-sample.h']
lib2sources = ['meson-sample2.c', 'meson-sample2.h']

gen_source = custom_target(
  'meson_smaple3.h',
  input : 'meson-sample.h',
  output : 'meson-sample3.h',
  command : [find_program('copy.py'), '@INPUT@', '@OUTPUT@'],
  build_by_default : false,  # this will force a race condition if one exists
)

girlib = shared_library(
  'gir_lib',
  sources : libsources,
  dependencies : [gobj, dep1_dep],
  install : true
)

girlib2 = shared_library(
  'gir_lib2',
  sources : lib2sources,
  dependencies : [gobj],
  install : true
)

girexe = executable(
  'girprog',
  sources : 'prog.c',
  dependencies : [glib, gobj, gir, dep1_dep],
  link_with : girlib
)

fake_dep = dependency('no-way-this-exists', required: false)

gnome.generate_gir(
  girlib, girlib2,
  sources : [libsources, lib2sources, gen_source],
  nsversion : '1.0',
  namespace : 'Meson',
  symbol_prefix : 'meson',
  identifier_prefix : 'Meson',
  includes : ['GObject-2.0', 'MesonDep1-1.0'],
  # dep1_dep pulls in dep2_dep for us
  dependencies : [[fake_dep, dep1_dep]],
  install : true,
  build_by_default : true,
  # Test that unknown kwargs do not crash the parser.
  # Unknown kwargs will eventually become a hard error.
  # Once that happens remove this.
  unknown_kwarg : true,
)

test('gobject introspection/c', girexe)
gir_paths = ':'.join([girlib.outdir(), dep1lib.outdir(), dep2lib.outdir(), dep3lib.outdir()])
envdata = environment()
envdata.append('GI_TYPELIB_PATH', gir_paths, separator : ':')
envdata.append('LD_LIBRARY_PATH', gir_paths)
if ['windows', 'cygwin'].contains(host_machine.system())
  envdata.append('PATH', gir_paths)
endif
test('gobject introspection/py', find_program('prog.py'),
     env : envdata)