diff options
author | Juan A. Suarez Romero <jasuarez@igalia.com> | 2017-02-14 11:22:22 +0100 |
---|---|---|
committer | Juan A. Suarez Romero <jasuarez@igalia.com> | 2017-02-14 11:22:22 +0100 |
commit | 4538c07aafae1d23211335ecfd51fb97e4f4d96d (patch) | |
tree | 6552effb06b07ca4cde30c54af29c2d2f7d73d73 /meson.build | |
parent | 5940808548f01ec12a34d33917a437a1399323fe (diff) | |
download | grilo-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.build | 125 |
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') |