summaryrefslogtreecommitdiffstats
path: root/tools/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'tools/meson.build')
-rw-r--r--tools/meson.build91
1 files changed, 91 insertions, 0 deletions
diff --git a/tools/meson.build b/tools/meson.build
new file mode 100644
index 0000000..6fa08e3
--- /dev/null
+++ b/tools/meson.build
@@ -0,0 +1,91 @@
+# Copyright 2021-2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: 0BSD OR ISC
+
+include_dirs = include_directories('../src')
+
+#############################
+# "Basic" (Lilv-Only) Tools #
+#############################
+
+basic_tools = [
+ 'lv2info',
+ 'lv2ls',
+]
+
+foreach tool : basic_tools
+ exe = executable(
+ tool,
+ files(tool + '.c'),
+ c_args: c_suppressions,
+ dependencies: lilv_dep,
+ include_directories: include_dirs,
+ install: true,
+ )
+
+ meson.override_find_program(tool, exe)
+
+ install_man(files('..' / 'doc' / tool + '.1'))
+endforeach
+
+install_data(
+ files('lilv.bash_completion'),
+ install_dir: get_option('sysconfdir') / 'bash_completion.d',
+ rename: 'lilv',
+)
+
+###########################
+# lv2apply (uses sndfile) #
+###########################
+
+sndfile_dep = dependency(
+ 'sndfile',
+ version: '>= 1.0.0',
+ required: get_option('tools'),
+)
+
+if sndfile_dep.found()
+ lv2apply = executable(
+ 'lv2apply',
+ files('lv2apply.c'),
+ c_args: c_suppressions,
+ dependencies: [lilv_dep, sndfile_dep],
+ include_directories: include_dirs,
+ install: true,
+ )
+
+ meson.override_find_program('lv2apply', lv2apply)
+
+ install_man(files('..' / 'doc' / 'lv2apply.1'))
+endif
+
+#################################
+# lv2bench (uses clock_gettime) #
+#################################
+
+if host_machine.system() != 'windows'
+ rt_dep = cc.find_library('rt', required: false)
+
+ clock_gettime_code = '''#include <time.h>
+int main(void) { struct timespec t; return clock_gettime(CLOCK_MONOTONIC, &t); }
+'''
+
+ if cc.compiles(
+ clock_gettime_code,
+ args: platform_defines,
+ dependencies: [rt_dep],
+ name: 'clock_gettime',
+ )
+ lv2bench = executable(
+ 'lv2bench',
+ files('lv2bench.c'),
+ c_args: c_suppressions,
+ dependencies: [lilv_dep, rt_dep, sndfile_dep],
+ include_directories: include_dirs,
+ install: true,
+ )
+
+ meson.override_find_program('lv2bench', lv2bench)
+
+ install_man(files('..' / 'doc' / 'lv2bench.1'))
+ endif
+endif