project('at-spi2-core', 'c',
- version: '2.25.4',
+ version: '2.34.0',
license: 'LGPLv2.1+',
default_options: [
'buildtype=debugoptimized',
'warning_level=1',
'c_std=c99',
],
- meson_version: '>= 0.40.1')
+ meson_version: '>= 0.50.0')
-add_project_arguments([ '-D_POSIX_C_SOURCE', '-D_DEFAULT_SOURCE' ], language: 'c')
+add_project_arguments([ '-D_POSIX_C_SOURCE=200809L', '-D_DEFAULT_SOURCE' ], language: 'c')
+
+atspi_gir_ns = 'Atspi'
cc = meson.get_compiler('c')
host_system = host_machine.system()
root_inc = include_directories('.')
registryd_inc = include_directories('registryd')
-atspi_datadir = join_paths(get_option('prefix'), get_option('datadir'))
-atspi_libexecdir = join_paths(get_option('prefix'), get_option('libexecdir'))
-atspi_sysconfdir = join_paths(get_option('prefix'), get_option('sysconfdir'))
+atspi_prefix = get_option('prefix')
+atspi_datadir = join_paths(atspi_prefix, get_option('datadir'))
+atspi_libexecdir = join_paths(atspi_prefix, get_option('libexecdir'))
+atspi_sysconfdir = join_paths(atspi_prefix, get_option('sysconfdir'))
+atspi_libdir = join_paths(atspi_prefix, get_option('libdir'))
+atspi_bindir = join_paths(atspi_prefix, get_option('bindir'))
+atspi_includedir = join_paths(atspi_prefix, get_option('includedir'))
if get_option('dbus_services_dir') != 'default'
dbus_services_dir = get_option('dbus_services_dir')
glib_req_version = '>= 2.32.0'
gobject_req_version = '>= 2.0.0'
gio_req_version = '>= 2.28.0'
+app_svc_req_version = '>= 0.0.0'
libdbus_dep = dependency('dbus-1', version: libdbus_req_version)
glib_dep = dependency('glib-2.0', version: glib_req_version)
gobject_dep = dependency('gobject-2.0', version: gobject_req_version)
gio_dep = dependency('gio-2.0', version: gio_req_version)
-dl_dep = cc.find_library('dl', required: false)
-x11_dep = dependency('x11', required: false)
+app_svc_dep = dependency('appsvc', version: app_svc_req_version)
+if cc.has_function('dlopen')
+ dl_dep = []
+elif cc.has_function('dlopen', args: '-ldl')
+ dl_dep = cc.find_library('dl')
+else
+ error('Could not find a library with the dlopen function')
+endif
x11_deps = []
-if x11_dep.found()
- x11_deps += x11_dep
-
- xtest_dep = dependency('xtst')
- x11_deps += xtest_dep
-
- xkb_dep = dependency('xkbcommon-x11', required: false)
- if xkb_dep.found()
- x11_deps += xkb_dep
- at_spi_conf.set('HAVE_XKB', 1)
+x11_option = get_option('x11')
+if x11_option != 'no'
+ x11_dep = dependency('x11', required: false)
+
+ if x11_dep.found()
+ x11_deps += x11_dep
+ at_spi_conf.set('HAVE_X11', 1)
+ xtest_dep = dependency('xtst')
+ x11_deps += xtest_dep
+
+ if cc.has_function('XkbGetMap', dependencies: x11_deps)
+ at_spi_conf.set('HAVE_XKB', 1)
+ endif
+
+ xinput_dep = dependency('xi')
+ x11_deps += xinput_dep
endif
-
- xinput_dep = dependency('xi')
- x11_deps += xinput_dep
endif
# Alignments
at_spi_conf.set('ALIGNOF_DBIND_POINTER', cc.alignment('dbind_pointer', prefix: 'typedef void *dbind_pointer;'))
at_spi_conf.set('ALIGNOF_DBIND_STRUCT', cc.alignment('dbind_struct', prefix: 'typedef struct { char s1; } dbind_struct;'))
-configure_file(output: 'config.h', configuration: at_spi_conf)
+# introspection support
+have_gir = false
-# Compat variables for pkgconfig
-pkgconf = configuration_data()
-pkgconf.set('prefix', get_option('prefix'))
-pkgconf.set('exec_prefix', get_option('prefix'))
-pkgconf.set('libdir', get_option('libdir'))
-pkgconf.set('includedir', get_option('includedir'))
-pkgconf.set('VERSION', meson.project_version())
+introspection_option = get_option('introspection')
+if introspection_option != 'no'
+ gir_dep = dependency('gobject-introspection-1.0', version: '>= 0.6.7', required: false)
-configure_file(input: 'atspi-2.pc.in',
- output: 'atspi-2.pc',
- configuration: pkgconf,
- install: true,
- install_dir: join_paths(get_option('libdir'), 'pkgconfig'))
+ if gir_dep.found()
+ have_gir = true
+ endif
+endif
+
+xgettext = find_program('xgettext', required : false)
+
+configure_file(output: 'config.h', configuration: at_spi_conf)
gnome = import('gnome')
subdir('registryd')
subdir('test')
-if get_option('enable_docs')
+if get_option('docs')
subdir('doc/libatspi')
endif
+
+if xgettext.found()
+ subdir('po')
+endif