summaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
authorJuan A. Suarez Romero <jasuarez@igalia.com>2017-02-14 11:22:22 +0100
committerJuan A. Suarez Romero <jasuarez@igalia.com>2017-02-14 11:22:22 +0100
commit4538c07aafae1d23211335ecfd51fb97e4f4d96d (patch)
tree6552effb06b07ca4cde30c54af29c2d2f7d73d73 /meson.build
parent5940808548f01ec12a34d33917a437a1399323fe (diff)
downloadgrilo-4538c07aafae1d23211335ecfd51fb97e4f4d96d.tar.gz
build: add Meson build support
https://bugzilla.gnome.org/show_bug.cgi?id=775950
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build125
1 files changed, 125 insertions, 0 deletions
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..c733065
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,125 @@
+#
+# meson.build
+#
+# Author: Juan A. Suarez Romero <jasuarez@igalia.com>
+#
+# Copyright (C) 2016 Igalia S.L. All rights reserved.
+
+project('grilo', 'c',
+ version: '0.3.3',
+ default_options: [
+ 'buildtype=debugoptimized',
+ 'c_std=gnu99',
+ 'warning_level=1'
+ ],
+ license: 'LGPL 2.1',
+ meson_version: '>= 0.36.0')
+
+grilo_version = meson.project_version()
+grlnet_version = meson.project_version()
+grlpls_version = meson.project_version()
+
+# maintaining compatibility with the previous libtool versioning
+# current = minor * 100 + micro
+version_array = grilo_version.split('.')
+soversion = version_array[0]
+current = version_array[1].to_int() * 100 + version_array[2].to_int()
+
+# Increase the age everytime new API is added
+grilo_interface_age = 1
+grlnet_interface_age = 0
+grlpls_interface_age = 0
+
+grilo_lt_version = '@0@.@1@.@2@'.format(soversion, current, grilo_interface_age)
+grlnet_lt_version = '@0@.@1@.@2@'.format(soversion, current, grlnet_interface_age)
+grlpls_lt_version = '@0@.@1@.@2@'.format(soversion, current, grlpls_interface_age)
+
+grl_majorminor = '@0@.@1@'.format(version_array[0], version_array[1])
+grl_name = '@0@-@1@'.format(meson.project_name(), grl_majorminor)
+
+gio_dep = dependency('gio-2.0', version: '>= 2.44', required: true)
+glib_dep = dependency('glib-2.0', version: '>= 2.34', required: true)
+gmodule_dep = dependency('gmodule-2.0', required: true)
+gobject_dep = dependency('gobject-2.0', required: true)
+libxml_dep = dependency('libxml-2.0', required: true)
+
+enable_grlnet = get_option('enable-grl-net')
+if enable_grlnet
+ libsoup_dep = dependency('libsoup-2.4', version: '>= 2.41.3', required: true)
+endif
+
+enable_grlpls = get_option('enable-grl-pls')
+if enable_grlpls
+ totem_plparser_dep = dependency('totem-plparser', version: '>= 3.4.1', required: true)
+endif
+
+enable_gir = get_option('enable-introspection') or get_option('enable-vala')
+if enable_gir
+ find_program('g-ir-scanner', required: true)
+endif
+
+enable_vala = get_option('enable-vala')
+if enable_vala
+ vapigen = find_program('vapigen', required: true)
+endif
+
+enable_testui = get_option('enable-test-ui')
+if enable_testui
+ gtk_dep = dependency('gtk+-3.0', version: '>= 3.0', required: true)
+ oauth_dep = dependency('oauth', required: false)
+endif
+
+prefix = get_option('prefix')
+libdir = join_paths(prefix, get_option('libdir'))
+plugins_dir = join_paths(libdir, grl_name)
+localedir = join_paths(prefix, get_option('localedir'))
+
+cdata = configuration_data()
+cdata.set_quoted('VERSION', grilo_version)
+cdata.set('GRLNET_VERSION', grlnet_version)
+cdata.set('GRLPLS_VERSION', grlpls_version)
+cdata.set_quoted('GRL_MAJORMINOR', grl_majorminor)
+cdata.set_quoted('GETTEXT_PACKAGE', meson.project_name())
+cdata.set_quoted('GRL_PLUGINS_DIR', plugins_dir)
+cdata.set_quoted('LOCALEDIR', localedir)
+if enable_testui
+ cdata.set('HAVE_OAUTH', oauth_dep.found())
+endif
+
+pkgconfig_files = [
+ 'grilo-@0@'.format(grl_majorminor),
+ 'grilo-net-@0@'.format(grl_majorminor),
+ 'grilo-pls-@0@'.format(grl_majorminor),
+]
+
+pkgconf = configuration_data()
+pkgconf.set('prefix', prefix)
+pkgconf.set('exec_prefix', '${prefix}')
+pkgconf.set('libdir', libdir)
+pkgconf.set('includedir', '${prefix}/@0@'.format(get_option('includedir')))
+pkgconf.set('GRL_NAME', grl_name)
+pkgconf.set('GRL_PLUGINS_DIR', plugins_dir)
+pkgconf.set('INTROSPECTION_GIRDIR', '${datarootdir}/gir-1.0')
+pkgconf.set('INTROSPECTION_TYPELIBDIR', '${libdir}/girepository-1.0'.format(get_option('libdir')))
+pkgconf.set('VERSION', grilo_version)
+pkgconf.set('GRLNET_VERSION', grlnet_version)
+pkgconf.set('GRLPLS_VERSION', grlpls_version)
+
+foreach p: pkgconfig_files
+ infile = p + '.pc.in'
+ outfile = p + '.pc'
+ configure_file(input: infile,
+ output: outfile,
+ configuration: pkgconf,
+ install_dir: '@0@/pkgconfig'.format(get_option('libdir')))
+endforeach
+
+gnome = import('gnome')
+
+subdir('src')
+subdir('libs')
+subdir('bindings')
+subdir('po')
+subdir('tools')
+subdir('examples')
+subdir('doc')