Protecting against potential NULL pointer dereference
[platform/upstream/at-spi2-core.git] / atspi / meson.build
1 atspi_sources = [
2   'atspi-accessible.c',
3   'atspi-action.c',
4   'atspi-application.c',
5   'atspi-collection.c',
6   'atspi-component.c',
7   'atspi-device.c',
8   'atspi-device-legacy.c',
9   'atspi-device-listener.c',
10   'atspi-document.c',
11   'atspi-editabletext.c',
12   'atspi-event-listener.c',
13   'atspi-gmain.c',
14   'atspi-hyperlink.c',
15   'atspi-hypertext.c',
16   'atspi-image.c',
17   'atspi-matchrule.c',
18   'atspi-mutter.c',
19   'atspi-misc.c',
20   'atspi-object.c',
21   'atspi-registry.c',
22   'atspi-relation.c',
23   'atspi-selection.c',
24   'atspi-stateset.c',
25   'atspi-table.c',
26   'atspi-table-cell.c',
27   'atspi-text.c',
28   'atspi-value.c',
29 ]
30
31 atspi_headers = [
32   'atspi.h',
33   'atspi-accessible.h',
34   'atspi-action.h',
35   'atspi-application.h',
36   'atspi-collection.h',
37   'atspi-component.h',
38   'atspi-constants.h',
39   'atspi-device.h',
40   'atspi-device-legacy.h',
41   'atspi-device-listener.h',
42   'atspi-document.h',
43   'atspi-editabletext.h',
44   'atspi-event-listener.h',
45   'atspi-gmain.h',
46   'atspi-hyperlink.h',
47   'atspi-hypertext.h',
48   'atspi-image.h',
49   'atspi-matchrule.h',
50   'atspi-misc.h',
51   'atspi-object.h',
52   'atspi-registry.h',
53   'atspi-relation.h',
54   'atspi-selection.h',
55   'atspi-stateset.h',
56   'atspi-table.h',
57   'atspi-table-cell.h',
58   'atspi-text.h',
59   'atspi-types.h',
60   'atspi-value.h',
61 ]
62
63 x11_option = get_option('x11')
64 if x11_option != 'no'
65   if x11_dep.found()
66     atspi_sources += ['atspi-device-x11.c']
67     atspi_headers += ['atspi-device-x11.h']
68   endif
69 endif
70
71 atspi_includedir = join_paths(get_option('prefix'), get_option('includedir'), 'at-spi-2.0', 'atspi')
72
73 install_headers(atspi_headers, install_dir: atspi_includedir)
74
75 # Marshallers
76 atspi_marshals = gnome.genmarshal('atspimarshal',
77   sources: 'atspimarshal.list',
78   prefix: 'atspi_marshal',
79 )
80 atspi_marshal_h = atspi_marshals[1]
81
82 atspi_enums = gnome.mkenums('atspi-enum-types',
83                             sources: [ 'atspi-constants.h', 'atspi-types.h' ],
84                             c_template: 'atspi-enum-types.c.template',
85                             h_template: 'atspi-enum-types.h.template',
86                             install_dir: atspi_includedir,
87                             install_header: true)
88 atspi_enum_h = atspi_enums[1]
89
90 atspi = library('atspi', atspi_sources + atspi_enums + atspi_marshals,
91                        version: soversion,
92                        soversion: soversion.split('.')[0],
93                        include_directories: [ root_inc, registryd_inc ],
94                        dependencies: [ libdbus_dep, gobject_dep, dbind_dep, x11_deps ],
95                        install: true)
96
97 atspi_dep = declare_dependency(link_with: atspi,
98                                sources: atspi_enum_h,
99                                include_directories: root_inc,
100                                dependencies: [ libdbus_dep, gobject_dep, ])
101
102 if have_gir
103   gir_sources = atspi_sources + atspi_enums + atspi_headers
104
105   gir_incs = [
106     'DBus-1.0',
107     'GLib-2.0',
108     'GObject-2.0'
109   ]
110
111   gir_extra_args = [
112     '--c-include=atspi/atspi.h',
113     '--pkg-export=atspi-2',
114     '--quiet',
115   ]
116
117   gir_dir = join_paths(atspi_datadir, 'gir-1.0')
118   typelib_dir = join_paths(get_option('libdir'), 'girepository-1.0')
119
120   libatspi_gir = gnome.generate_gir(
121     atspi,
122     sources: gir_sources,
123     nsversion: '2.0',
124     namespace: atspi_gir_ns,
125     symbol_prefix: atspi_gir_ns.to_lower(),
126     identifier_prefix: atspi_gir_ns,
127     includes: gir_incs,
128     include_directories: root_inc,
129     install: true,
130     install_dir_gir: gir_dir,
131     install_dir_typelib: typelib_dir,
132     extra_args: gir_extra_args
133   )
134 endif
135
136 pkgconfig = import('pkgconfig')
137 pkgconfig.generate(
138   name: 'atspi',
139   description: 'Accessibility Technology software library',
140   version: meson.project_version(),
141   libraries: atspi,
142   requires: ['dbus-1', 'glib-2.0'],
143   subdirs: 'at-spi-2.0',
144   filebase: 'atspi-2',
145 )