aboutsummaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build54
1 files changed, 54 insertions, 0 deletions
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..e7c4d37
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,54 @@
+project('widgets.lv2', 'c', default_options : [
+ 'buildtype=release',
+ 'warning_level=1',
+ 'werror=false',
+ 'b_lto=false',
+ 'c_std=c11'])
+
+add_project_arguments('-D_GNU_SOURCE', language : 'c')
+
+conf_data = configuration_data()
+cc = meson.get_compiler('c')
+
+cp = find_program('cp')
+clone = [cp, '@INPUT@', '@OUTPUT@']
+
+m_dep = cc.find_library('m')
+lv2_dep = dependency('lv2', version : '>=1.14.0')
+
+canvas_inc = include_directories('canvas.lv2')
+
+inst_dir = join_paths(get_option('libdir'), 'lv2', meson.project_name())
+
+srcs = ['widgets.c',
+ 'widgets_xy_pad.c']
+
+c_args = ['-fvisibility=hidden',
+ '-ffast-math']
+
+mod = shared_module('widgets', srcs,
+ c_args : c_args,
+ name_prefix : '',
+ include_directories : [canvas_inc],
+ dependencies : [m_dep, lv2_dep],
+ install : true,
+ install_dir : inst_dir)
+
+version = run_command('cat', 'VERSION').stdout().strip().split('.')
+conf_data.set('MAJOR_VERSION', version[0])
+conf_data.set('MINOR_VERSION', version[1])
+conf_data.set('MICRO_VERSION', version[2])
+
+suffix = mod.full_path().strip().split('.')[-1]
+conf_data.set('MODULE_SUFFIX', '.' + suffix)
+
+configure_file(input : 'manifest.ttl.in', output : 'manifest.ttl',
+ configuration : conf_data,
+ install : true,
+ install_dir : inst_dir)
+custom_target('widgets_ttl',
+ input : 'widgets.ttl',
+ output : 'widgets.ttl',
+ command : clone,
+ install : true,
+ install_dir : inst_dir)