Merge tag 'upstream/2.42.0' into tizen
[platform/upstream/at-spi2-core.git] / meson.build
1 project('at-spi2-core', 'c',
2         version: '2.42.0',
3         license: 'LGPLv2.1+',
4         default_options: [
5           'buildtype=debugoptimized',
6           'warning_level=1',
7           'c_std=c99',
8         ],
9         meson_version: '>= 0.46.0')
10
11 add_project_arguments([ '-D_POSIX_C_SOURCE=200809L', '-D_DEFAULT_SOURCE' ], language: 'c')
12
13 atspi_gir_ns = 'Atspi'
14
15 cc = meson.get_compiler('c')
16 host_system = host_machine.system()
17
18 soversion = '0.0.1'
19
20 at_spi_conf = configuration_data()
21 at_spi_conf.set('GETTEXT_PACKAGE', meson.project_name())
22
23 root_inc = include_directories('.')
24 registryd_inc = include_directories('registryd')
25
26 atspi_prefix = get_option('prefix')
27 atspi_datadir = join_paths(atspi_prefix, get_option('datadir'))
28 atspi_libexecdir = join_paths(atspi_prefix, get_option('libexecdir'))
29 atspi_sysconfdir = join_paths(atspi_prefix, get_option('sysconfdir'))
30 atspi_libdir = join_paths(atspi_prefix, get_option('libdir'))
31 atspi_bindir = join_paths(atspi_prefix, get_option('bindir'))
32 atspi_includedir = join_paths(atspi_prefix, get_option('includedir'))
33
34 if get_option('dbus_services_dir') != 'default'
35   dbus_services_dir = get_option('dbus_services_dir')
36 else
37   dbus_services_dir = join_paths(get_option('datadir'), 'dbus-1/services')
38 endif
39
40 if get_option('systemd_user_dir') != 'default'
41   systemd_user_dir = get_option('systemd_user_dir')
42 else
43   systemd_user_dir = join_paths(get_option('prefix'), 'lib/systemd/user')
44 endif
45
46 # Dependencies
47 libdbus_req_version = '>= 1.5'
48 glib_req_version = '>= 2.62.0'
49 gobject_req_version = '>= 2.0.0'
50 gio_req_version = '>= 2.28.0'
51 app_svc_req_version = '>= 0.0.0'
52
53 libdbus_dep = dependency('dbus-1', version: libdbus_req_version)
54 glib_dep = dependency('glib-2.0', version: glib_req_version)
55 gobject_dep = dependency('gobject-2.0', version: gobject_req_version)
56 gio_dep = dependency('gio-2.0', version: gio_req_version)
57 app_svc_dep = dependency('appsvc', version: app_svc_req_version)
58 if cc.has_function('dlopen')
59   dl_dep = []
60 elif cc.has_function('dlopen', args: '-ldl')
61   dl_dep = cc.find_library('dl')
62 else
63   error('Could not find a library with the dlopen function')
64 endif
65
66 x11_deps = []
67 x11_option = get_option('x11')
68 if x11_option != 'no'
69   x11_dep = dependency('x11', required: false)
70
71   if x11_dep.found()
72     x11_deps += x11_dep
73     at_spi_conf.set('HAVE_X11', 1)
74     xtest_dep = dependency('xtst')
75     x11_deps += xtest_dep
76
77     if cc.has_function('XkbGetMap', dependencies: x11_deps)
78       at_spi_conf.set('HAVE_XKB', 1)
79     endif
80
81     xinput_dep = dependency('xi')
82     x11_deps += xinput_dep
83   endif
84 endif
85
86 # Alignments
87 at_spi_conf.set('ALIGNOF_CHAR', cc.alignment('char'))
88 at_spi_conf.set('ALIGNOF_DOUBLE', cc.alignment('double'))
89
90 dbus_alignments = [
91   'dbus_bool_t',
92   'dbus_int16_t',
93   'dbus_int32_t',
94   'dbus_int64_t',
95 ]
96
97 foreach a: dbus_alignments
98   at_spi_conf.set('ALIGNOF_' + a.underscorify().to_upper(),
99                   cc.alignment(a, prefix: '#include <dbus/dbus.h>', dependencies: libdbus_dep))
100 endforeach
101
102 at_spi_conf.set('ALIGNOF_DBIND_POINTER', cc.alignment('dbind_pointer', prefix: 'typedef void *dbind_pointer;'))
103 at_spi_conf.set('ALIGNOF_DBIND_STRUCT', cc.alignment('dbind_struct', prefix: 'typedef struct { char s1; } dbind_struct;'))
104
105 # introspection support
106 have_gir = false
107
108 introspection_option = get_option('introspection')
109 if introspection_option != 'no'
110   gir_dep = dependency('gobject-introspection-1.0', version: '>= 0.6.7', required: false)
111
112   if gir_dep.found()
113     have_gir = true
114   endif
115 endif
116
117 xgettext = find_program('xgettext', required : false)
118
119 configure_file(output: 'config.h', configuration: at_spi_conf)
120
121 gnome = import('gnome')
122
123 subdir('dbind')
124 subdir('atspi')
125 subdir('bus')
126 subdir('registryd')
127 subdir('test')
128
129 if get_option('docs')
130   subdir('doc/libatspi')
131 endif
132
133 if xgettext.found()
134   subdir('po')
135 endif