summaryrefslogtreecommitdiff
path: root/gio/tests/gdbus-object-manager-example/meson.build
blob: c26238f5f986d72caa3931362b072ad17dfeb6db (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
gvisibility_h = configure_file(
  output: 'gdbus-example-objectmanager-visibility.h',
  command: [gen_visibility_macros, '2.0', 'visibility-macros',
            'GDBUS_OBJECT_MANAGER_EXAMPLE', '@OUTPUT@'],
)

gdbus_example_objectmanager_xml = files('gdbus-example-objectmanager.xml')
gdbus_example_objectmanager_generated = custom_target('objectmanager-gen',
  input  : gdbus_example_objectmanager_xml,
  output : ['objectmanager-gen.h',
            'objectmanager-gen.c',
            'objectmanager-gen-org.gtk.GDBus.Example.ObjectManager.Animal.xml',
            'objectmanager-gen-org.gtk.GDBus.Example.ObjectManager.Cat.xml'],
  command : [python, gdbus_codegen,
             '--interface-prefix', 'org.gtk.GDBus.Example.ObjectManager.',
             '--c-namespace', 'Example',
             '--c-generate-object-manager',
             '--output-directory', '@OUTDIR@',
             '--generate-c-code', 'objectmanager-gen',
             '--generate-docbook', 'objectmanager-gen',
             '--symbol-decorator', 'GDBUS_OBJECT_MANAGER_EXAMPLE_AVAILABLE_IN_ALL',
             '--symbol-decorator-header', 'gdbus-example-objectmanager-visibility.h',
             '@INPUT@'])

gdbus_example_objectmanager_rst_gen = custom_target('objectmanager-rst-gen',
  input: gdbus_example_objectmanager_xml,
  output: [
    'objectmanager-rst-gen-org.gtk.GDBus.Example.ObjectManager.Animal.rst',
    'objectmanager-rst-gen-org.gtk.GDBus.Example.ObjectManager.Cat.rst',
  ],
  command: [
    python,
    gdbus_codegen,
    '--interface-prefix', 'org.gtk.GDBus.Example.ObjectManager.',
    '--generate-rst', 'objectmanager-rst-gen',
    '--output-directory', '@OUTDIR@',
    '@INPUT@',
  ],
)

extra_c_args = []
if get_option('default_library') == 'static'
  extra_c_args = '-DGDBUS_OBJECT_MANAGER_EXAMPLE_STATIC_COMPILATION'
endif

libgdbus_example_objectmanager = library('gdbus-example-objectmanager',
    gdbus_example_objectmanager_generated, gvisibility_h,
    c_args : [test_c_args, extra_c_args,
              '-DGDBUS_OBJECT_MANAGER_EXAMPLE_COMPILATION'],
    dependencies : [libglib_dep, libgmodule_dep, libgobject_dep, libgio_dep],
    install : installed_tests_enabled,
    install_dir : installed_tests_execdir)

libgdbus_example_objectmanager_dep = declare_dependency(
  sources : [
    gdbus_example_objectmanager_generated[0],
    gdbus_example_objectmanager_rst_gen[0],
  ],
  link_with : libgdbus_example_objectmanager,
  dependencies : [libgio_dep],
  compile_args : extra_c_args,
)