[at-spi2-atk/wip/meson] Add Meson build system



commit 3674bd4499c5e131eda4389a225f80c55d6e07a2
Author: Emmanuele Bassi <ebassi gnome org>
Date:   Sun May 21 16:09:28 2017 +0100

    Add Meson build system
    
    Meson is a fast, portable, easy to understand meta-build system. It is
    currently being adopted in various projects inside GNOME alongside
    Autotools, in the hope of making it the default build system for future
    releases.

 atk-adaptor/adaptors/meson.build |   31 +++++++++++++++
 atk-adaptor/meson.build          |   48 +++++++++++++++++++++++
 droute/meson.build               |   18 +++++++++
 meson.build                      |   68 +++++++++++++++++++++++++++++++++
 meson_options.txt                |    4 ++
 tests/dummyatk/meson.build       |   23 +++++++++++
 tests/meson.build                |   77 ++++++++++++++++++++++++++++++++++++++
 7 files changed, 269 insertions(+), 0 deletions(-)
---
diff --git a/atk-adaptor/adaptors/meson.build b/atk-adaptor/adaptors/meson.build
new file mode 100644
index 0000000..11022d6
--- /dev/null
+++ b/atk-adaptor/adaptors/meson.build
@@ -0,0 +1,31 @@
+source = [
+  'accessible-adaptor.c',
+  'action-adaptor.c',
+  'application-adaptor.c',
+  'cache-adaptor.c',
+  'collection-adaptor.c',
+  'component-adaptor.c',
+  'document-adaptor.c',
+  'editabletext-adaptor.c',
+  'hyperlink-adaptor.c',
+  'hypertext-adaptor.c',
+  'image-adaptor.c',
+  'selection-adaptor.c',
+  'socket-adaptor.c',
+  'table-adaptor.c',
+  'table-cell-adaptor.c',
+  'text-adaptor.c',
+  'value-adaptor.c',
+]
+
+libatk_bridge_adaptors = static_library('atk-bridge-adaptors', source,
+                                        include_directories: [
+                                          root_inc,
+                                          include_directories('..'),
+                                        ],
+                                        dependencies: [ libdbus_dep, atspi_dep, atk_dep ],
+                                        c_args: p2p_cflags)
+
+libatk_bridge_adaptors_dep = declare_dependency(link_with: libatk_bridge_adaptors,
+                                                dependencies: [ libdbus_dep, atspi_dep, atk_dep ],
+                                                include_directories: include_directories('.'))
diff --git a/atk-adaptor/meson.build b/atk-adaptor/meson.build
new file mode 100644
index 0000000..080dbc1
--- /dev/null
+++ b/atk-adaptor/meson.build
@@ -0,0 +1,48 @@
+subdir('adaptors')
+
+atk_bridge_sources = [
+  'accessible-leasing.c',
+  'accessible-cache.c',
+  'accessible-register.c',
+  'accessible-stateset.c',
+  'introspection.c',
+  'bridge.c',
+  'object.c',
+  'event.c',
+  'spi-dbus.c',
+]
+
+install_headers([ 'atk-bridge.h' ], subdir: join_paths(meson.project_name(), '2.0'))
+
+libatk_bridge = shared_library('atk-bridge-2.0', atk_bridge_sources,
+                               include_directories: root_inc,
+                               dependencies: [
+                                 libatk_bridge_adaptors_dep,
+                                 libdroute_dep,
+                                 libdbus_dep,
+                                 gmodule_dep,
+                                 atk_dep,
+                                 atspi_dep,
+                               ],
+                               c_args: p2p_cflags,
+                               soversion: '0.0.0',
+                               install: true)
+
+libatk_bridge_dep = declare_dependency(link_with: libatk_bridge,
+                                       include_directories: [
+                                         root_inc,
+                                         include_directories('.')
+                                       ])
+
+atk_bridge_module = shared_module('atk-bridge', 'gtk-2.0/module.c',
+                                  include_directories: root_inc,
+                                  dependencies: [
+                                    libatk_bridge_dep,
+                                    libdbus_dep,
+                                    atk_dep,
+                                    atspi_dep,
+                                    gmodule_dep,
+                                  ],
+                                  c_args: p2p_cflags,
+                                  install: true,
+                                  install_dir: join_paths(get_option('libdir'), 'gtk-2.0', 'modules'))
diff --git a/droute/meson.build b/droute/meson.build
new file mode 100644
index 0000000..3a1128f
--- /dev/null
+++ b/droute/meson.build
@@ -0,0 +1,18 @@
+droute_sources = [
+  'droute.c',
+  'droute-variant.c',
+  'droute-pairhash.c',
+]
+
+libdroute = static_library('droute', droute_sources,
+                           dependencies: [ glib_dep, libdbus_dep ],
+                           include_directories: root_inc)
+
+libdroute_dep = declare_dependency(link_with: libdroute,
+                                   dependencies: [ glib_dep, libdbus_dep ],
+                                   include_directories: include_directories('.'))
+
+droute_test = executable('droute-test', 'droute-test.c',
+                         dependencies: [ libdroute_dep, atspi_dep ],
+                         include_directories: root_inc)
+test('droute-test', droute_test)
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..101e8e3
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,68 @@
+project('at-spi2-atk', 'c',
+        version: '2.25.1',
+        license: 'LGPLv2.1+',
+        default_options: [
+          'buildtype=debugoptimized',
+          'warning_level=1',
+          'c_std=c99',
+        ],
+        meson_version : '>= 0.40.1')
+
+cc = meson.get_compiler('c')
+host_system = host_machine.system()
+
+# XXX: for strcasecmp(); should use g_ascii_strcasecmp()
+add_project_arguments([ '-D_DEFAULT_SOURCE', ], language: 'c')
+
+# XXX: Unused
+at_spi_conf = configuration_data()
+at_spi_conf.set('GETTEXT_PACKAGE', meson.project_name())
+configure_file(output: 'config.h',
+               configuration: at_spi_conf)
+
+root_inc = include_directories('.')
+
+# Dependencies
+libdbus_req_version = '>= 1.5'
+glib_req_version = '>= 2.32.0'
+gobject_req_version = '>= 2.0.0'
+gmodule_req_version = '>= 2.0.0'
+atk_req_version = '>= 2.15.4'
+atspi_req_version = '>= 2.17.90'
+libxml_req_version = '>= 2.9.1'
+
+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)
+gmodule_dep = dependency('gmodule-2.0', version: gmodule_req_version)
+atk_dep = dependency('atk', version: atk_req_version)
+atspi_dep = dependency('atspi-2', version: atspi_req_version)
+libxml_dep = dependency('libxml-2.0', version: libxml_req_version, required: false)
+
+if get_option('disable_p2p')
+  p2p_cflags = [ '-DDISABLE_P2P' ]
+else
+  p2p_cflags = []
+endif
+
+import('gnome')
+
+pkg_conf = configuration_data()
+pkg_conf.set('prefix', get_option('prefix'))
+pkg_conf.set('exec_prefix', get_option('prefix'))
+pkg_conf.set('libdir', get_option('libdir'))
+pkg_conf.set('includedir', get_option('includedir'))
+pkg_conf.set('VERSION', meson.project_version())
+
+configure_file(input: 'atk-bridge-2.0.pc.in',
+               output: 'atk-bridge-2.0.pc',
+               configuration: pkg_conf,
+               install: true,
+               install_dir: join_paths(get_option('libdir'), 'pkgconfig'))
+
+install_data('at-spi2-atk.desktop',
+             install_dir: join_paths(get_option('libdir'), 'gnome-settings-daemon-3.0', 'gtk-modules'))
+
+subdir('droute')
+subdir('atk-adaptor')
+subdir('tests')
diff --git a/meson_options.txt b/meson_options.txt
new file mode 100644
index 0000000..24c9228
--- /dev/null
+++ b/meson_options.txt
@@ -0,0 +1,4 @@
+option('disable_p2p',
+       description: 'Disable peer-to-peer DBus connections',
+       type: 'boolean',
+       value: false)
diff --git a/tests/dummyatk/meson.build b/tests/dummyatk/meson.build
new file mode 100644
index 0000000..4f98989
--- /dev/null
+++ b/tests/dummyatk/meson.build
@@ -0,0 +1,23 @@
+dummyatk_sources = [
+  'my-atk-action.c',
+  'my-atk-component.c',
+  'my-atk-document.c',
+  'my-atk-editable-text.c',
+  'my-atk-hyperlink.c',
+  'my-atk-hypertext.c',
+  'my-atk-image.c',
+  'my-atk-text.c',
+  'my-atk-object.c',
+  'my-atk-table.c',
+  'my-atk-table-cell.c',
+  'my-atk-selection.c',
+  'my-atk-value.c',
+]
+
+dummyatk = static_library('dummyatk', dummyatk_sources,
+                          include_directories: root_inc,
+                          dependencies: [ glib_dep, gobject_dep, atk_dep ])
+
+dummyatk_dep = declare_dependency(link_with: dummyatk,
+                                  dependencies: [ glib_dep, gobject_dep, atk_dep ],
+                                  include_directories: include_directories('.'))
diff --git a/tests/meson.build b/tests/meson.build
new file mode 100644
index 0000000..ce6d444
--- /dev/null
+++ b/tests/meson.build
@@ -0,0 +1,77 @@
+subdir('dummyatk')
+
+xmlloader = static_library('xmlloader', [ 'atk-object-xml-loader.c' ],
+                           dependencies: [ glib_dep, gobject_dep, libxml_dep, atk_dep, dummyatk_dep ],
+                           include_directories: [ root_inc, include_directories('.') ])
+xmlloader_dep = declare_dependency(link_with: xmlloader)
+
+testutils = static_library('testutils', [ 'atk_test_util.c' ],
+                           dependencies: [ glib_dep, atspi_dep ],
+                           include_directories: [ root_inc, include_directories('.') ])
+testutils_dep = declare_dependency(link_with: testutils)
+
+# tests:
+#  - name
+#  - sources
+#  - dependencies
+tests = [
+  [
+    'atk-test', [
+      'atk_suite.c',
+      'atk_test_accessible.c',
+      'atk_test_action.c',
+      'atk_test_component.c',
+      'atk_test_collection.c',
+      'atk_test_document.c',
+      'atk_test_editable_text.c',
+      'atk_test_hyperlink.c',
+      'atk_test_hypertext.c',
+      'atk_test_image.c',
+      'atk_test_selection.c',
+      'atk_test_state_set.c',
+      'atk_test_table.c',
+      'atk_test_table_cell.c',
+      'atk_test_text.c',
+      'atk_test_value.c',
+    ],
+    [
+      glib_dep,
+      atspi_dep,
+      xmlloader_dep,
+      testutils_dep,
+      dummyatk_dep,
+    ]
+  ],
+
+  [
+    'app-test',
+    [
+      'test-application.c',
+    ],
+    [
+      glib_dep,
+      atk_dep,
+      xmlloader_dep,
+      testutils_dep,
+      dummyatk_dep,
+      libatk_bridge_dep,
+    ]
+  ],
+]
+
+foreach t: tests
+  test_name = t[0]
+  test_sources = t[1]
+  test_deps = t[2]
+
+  test_bin = executable(test_name, test_sources,
+                        dependencies: test_deps,
+                        include_directories: root_inc,
+                        c_args: [
+                          '-DTESTS_BUILD_DIR="@0@"'.format(meson.current_build_dir()),
+                          '-DTESTS_SRC_DIR="@0@"'.format(meson.current_source_dir()),
+                          '-DTESTS_DATA_DIR="@0@"'.format(join_paths(meson.current_source_dir(), 'data')),
+                        ])
+
+  test(test_name, test_bin)
+endforeach


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]