summaryrefslogtreecommitdiff
path: root/clutter-gtk/meson.build
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2017-05-22 11:13:07 +0100
committerEmmanuele Bassi <ebassi@gnome.org>2017-05-26 12:57:34 +0100
commitc9e7f76415e81dd1bc23632a670dad5cfa1890a6 (patch)
tree0ba77a837e7a6f59d69e4dd24499106c4c870d6d /clutter-gtk/meson.build
parent40ea12a3f4ba41cc59602c65205f647f8023bf9d (diff)
downloadclutter-gtk-c9e7f76415e81dd1bc23632a670dad5cfa1890a6.tar.gz
Add Meson build
Meson is a meta-build system that has various advantages over Autotools: - it is fast - it is portable - it is easy to understand - it is well maintained Various projects in the GNOME stack already moved to Meson, including GTK+.
Diffstat (limited to 'clutter-gtk/meson.build')
-rw-r--r--clutter-gtk/meson.build66
1 files changed, 66 insertions, 0 deletions
diff --git a/clutter-gtk/meson.build b/clutter-gtk/meson.build
new file mode 100644
index 0000000..73fca24
--- /dev/null
+++ b/clutter-gtk/meson.build
@@ -0,0 +1,66 @@
+clutter_gtk_sources = [
+ 'gtk-clutter-actor.c',
+ 'gtk-clutter-embed.c',
+ 'gtk-clutter-offscreen.c',
+ 'gtk-clutter-texture.c',
+ 'gtk-clutter-util.c',
+ 'gtk-clutter-window.c',
+]
+
+clutter_gtk_headers = [
+ 'clutter-gtk.h',
+
+ 'gtk-clutter-actor.h',
+ 'gtk-clutter-embed.h',
+ 'gtk-clutter-texture.h',
+ 'gtk-clutter-util.h',
+ 'gtk-clutter-window.h',
+]
+
+install_headers(clutter_gtk_headers, subdir: gtk_clutter_api_path)
+
+gtk_clutter_version_conf = configuration_data()
+gtk_clutter_version_conf.set('CLUTTER_GTK_MAJOR_VERSION', gtk_clutter_major_version)
+gtk_clutter_version_conf.set('CLUTTER_GTK_MINOR_VERSION', gtk_clutter_minor_version)
+gtk_clutter_version_conf.set('CLUTTER_GTK_MICRO_VERSION', gtk_clutter_micro_version)
+gtk_clutter_version_conf.set('CLUTTER_GTK_VERSION', meson.project_version())
+configure_file(input: 'gtk-clutter-version.h.in',
+ output: 'gtk-clutter-version.h',
+ configuration: gtk_clutter_version_conf,
+ install: true,
+ install_dir: join_paths(gtk_clutter_includedir, gtk_clutter_api_path))
+
+clutter_gtk = shared_library(gtk_clutter_api_name, clutter_gtk_sources,
+ soversion: soversion,
+ version: libversion,
+ dependencies: [ mathlib_dep, clutter_dep, gtk_dep ],
+ include_directories: root_inc,
+ c_args: common_cflags + gtk_clutter_debug_cflags + [
+ '-DPREFIX="@0@"'.format(gtk_clutter_prefix),
+ '-DLIBDIR="@0@"'.format(gtk_clutter_libdir),
+ '-DG_LOG_DOMAIN="Clutter-Gtk"',
+ '-DG_LOG_USE_STRUCTURED=1',
+ '-DCLUTTER_GTK_COMPILATION',
+ ],
+ link_args: common_ldflags,
+ install: true)
+
+clutter_gtk_dep = declare_dependency(link_with: clutter_gtk,
+ dependencies: [ mathlib_dep, clutter_dep, gtk_dep ],
+ include_directories: include_directories('.'))
+
+if not meson.is_cross_build()
+ gnome.generate_gir(clutter_gtk,
+ sources: clutter_gtk_headers + clutter_gtk_sources,
+ namespace: 'GtkClutter',
+ nsversion: gtk_clutter_api_version,
+ identifier_prefix: 'GtkClutter',
+ symbol_prefix: 'gtk_clutter',
+ export_packages: gtk_clutter_api_name,
+ includes: [ 'Clutter-1.0', 'Gtk-3.0' ],
+ install: true,
+ extra_args: [
+ '--c-include="clutter-gtk/clutter-gtk.h"',
+ '-DCLUTTER_GTK_COMPILATION',
+ ])
+endif