From 4b50f5b638015556d93771269258e6894b6b757f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Sat, 9 Apr 2016 23:53:26 +0100 Subject: Add support for Meson as build system The Meson build system is being adopted by projects such as GNOME, PulseAudio, GStreamer, VLC, systemd, Mesa, Wayland, X.org, and many others. Having a meson build upstream in tinyalsa would allow for easy use of tinyalsa as a Meson subproject in other projects. https://mesonbuild.com --- examples/meson.build | 8 ++++++++ include/tinyalsa/meson.build | 10 ++++++++++ meson.build | 29 +++++++++++++++++++++++++++++ meson_options.txt | 6 ++++++ utils/meson.build | 9 +++++++++ 5 files changed, 62 insertions(+) create mode 100644 examples/meson.build create mode 100644 include/tinyalsa/meson.build create mode 100644 meson.build create mode 100644 meson_options.txt create mode 100644 utils/meson.build diff --git a/examples/meson.build b/examples/meson.build new file mode 100644 index 0000000..59a48a1 --- /dev/null +++ b/examples/meson.build @@ -0,0 +1,8 @@ +examples = ['pcm-readi', 'pcm-writei'] + +foreach e : examples + executable(e, '@0@.c'.format(e), + include_directories: tinyalsa_includes, + link_with: tinyalsa, + install: false) +endforeach diff --git a/include/tinyalsa/meson.build b/include/tinyalsa/meson.build new file mode 100644 index 0000000..d14b35b --- /dev/null +++ b/include/tinyalsa/meson.build @@ -0,0 +1,10 @@ +tinyalsa_headers = [ + 'asoundlib.h', + 'interval.h', + 'limits.h', + 'mixer.h', + 'pcm.h', + 'version.h' +] + +install_headers(tinyalsa_headers, subdir: 'tinyalsa') diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..e09a8be --- /dev/null +++ b/meson.build @@ -0,0 +1,29 @@ +project ('tinyalsa', 'c', version : '1.1.1', meson_version : '>= 0.48.0') + +tinyalsa_includes = include_directories('.', 'include') + +tinyalsa = library('tinyalsa', + 'src/mixer.c', 'src/pcm.c', + include_directories: tinyalsa_includes, + install: true) + +# For use as a Meson subproject +tinyalsa_dep = declare_dependency(link_with: tinyalsa, + include_directories: include_directories('include')) + +if not get_option('docs').disabled() + # subdir('docs') # FIXME +endif + +if not get_option('examples').disabled() + subdir('examples') +endif + +subdir('include/tinyalsa') + +if not get_option('utils').disabled() + subdir('utils') +endif + +pkg = import('pkgconfig') +pkg.generate(tinyalsa, description: 'TinyALSA Library') diff --git a/meson_options.txt b/meson_options.txt new file mode 100644 index 0000000..f2e2bc2 --- /dev/null +++ b/meson_options.txt @@ -0,0 +1,6 @@ +option('docs', type: 'feature', value: 'auto', yield: true, + description : 'Generate documentation with Doxygen') +option('examples', type: 'feature', value: 'auto', yield: true, + description : 'Build examples') +option('utils', type: 'feature', value: 'auto', yield: true, + description : 'Build utility tools') diff --git a/utils/meson.build b/utils/meson.build new file mode 100644 index 0000000..934402b --- /dev/null +++ b/utils/meson.build @@ -0,0 +1,9 @@ +utils = ['tinyplay', 'tinycap', 'tinymix', 'tinypcminfo'] + +foreach util : utils + executable(util, '@0@.c'.format(util), + include_directories: tinyalsa_includes, + link_with: tinyalsa, + install: true) + install_man('@0@.1'.format(util)) +endforeach -- cgit v1.2.3