Fix memory management issues
[platform/upstream/at-spi2-core.git] / meson.build
index c8f6951..8fed991 100644 (file)
@@ -1,14 +1,14 @@
 project('at-spi2-core', 'c',
-        version: '2.25.91',
+        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'
 
@@ -28,6 +28,7 @@ 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'
@@ -47,29 +48,39 @@ libdbus_req_version = '>= 1.5'
 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
@@ -94,7 +105,7 @@ at_spi_conf.set('ALIGNOF_DBIND_STRUCT', cc.alignment('dbind_struct', prefix: 'ty
 # introspection support
 have_gir = false
 
-introspection_option = get_option('enable-introspection')
+introspection_option = get_option('introspection')
 if introspection_option != 'no'
   gir_dep = dependency('gobject-introspection-1.0', version: '>= 0.6.7', required: false)
 
@@ -107,20 +118,6 @@ xgettext = find_program('xgettext', required : false)
 
 configure_file(output: 'config.h', configuration: at_spi_conf)
 
-# Compat variables for pkgconfig
-pkgconf = configuration_data()
-pkgconf.set('prefix', get_option('prefix'))
-pkgconf.set('exec_prefix', get_option('prefix'))
-pkgconf.set('libdir', atspi_libdir)
-pkgconf.set('includedir', atspi_includedir)
-pkgconf.set('VERSION', meson.project_version())
-
-configure_file(input: 'atspi-2.pc.in',
-               output: 'atspi-2.pc',
-               configuration: pkgconf,
-               install: true,
-               install_dir: join_paths(get_option('libdir'), 'pkgconfig'))
-
 gnome = import('gnome')
 
 subdir('dbind')
@@ -129,7 +126,7 @@ subdir('bus')
 subdir('registryd')
 subdir('test')
 
-if get_option('enable_docs')
+if get_option('docs')
   subdir('doc/libatspi')
 endif