aboutsummaryrefslogtreecommitdiffstats
path: root/wscript
diff options
context:
space:
mode:
Diffstat (limited to 'wscript')
-rw-r--r--wscript93
1 files changed, 93 insertions, 0 deletions
diff --git a/wscript b/wscript
new file mode 100644
index 0000000..71d99f7
--- /dev/null
+++ b/wscript
@@ -0,0 +1,93 @@
+#!/usr/bin/env python
+import autowaf
+
+# Version of this package (even if built as a child)
+LV2EXT_VERSION = '0.0.0'
+
+# Variables for 'waf dist'
+APPNAME = 'lv2ext'
+VERSION = LV2EXT_VERSION
+
+# Mandatory variables
+srcdir = '.'
+blddir = 'build'
+
+def set_options(opt):
+ autowaf.set_options(opt)
+ opt.tool_options('compiler_cc')
+ opt.tool_options('compiler_cxx')
+
+def configure(conf):
+ autowaf.configure(conf)
+ conf.check_tool('compiler_cc')
+ conf.check_tool('compiler_cxx')
+ conf.env.append_value('CCFLAGS', '-std=c99')
+ pat = conf.env['shlib_PATTERN']
+ ext = pat[pat.rfind('.'):]
+ conf.env.append_value('shlib_EXTENSION', ext)
+
+def build_plugin(bld, lang, name):
+ ext = bld.env['shlib_EXTENSION'][0]
+
+ penv = bld.env.copy()
+ penv['shlib_PATTERN'] = '%s' + ext
+
+ # Library
+ ext = 'c'
+ if lang != 'cc':
+ ext = 'cpp'
+
+ obj = bld.new_task_gen(lang, 'shlib')
+ obj.env = penv
+ obj.source = [ 'plugins/%s.lv2/%s.%s' % (name, name, ext) ]
+ obj.includes = ['.', './ext']
+ obj.name = name
+ obj.target = name
+ obj.install_path = '${LV2DIR}/' + name + '.lv2'
+
+ if lang == 'cxx':
+ obj.source += [ 'ext/lv2plugin.cpp' ]
+
+ # Data
+ data_file = 'plugins/%s.lv2/%s.ttl' % (name, name)
+ manifest_file = 'plugins/%s.lv2/manifest.ttl' % (name)
+ bld.install_files('${LV2DIR}/' + name + '.lv2', data_file)
+ bld.install_files('${LV2DIR}/' + name + '.lv2', manifest_file)
+
+def build_extension(bld, name, dir):
+ data_file = '%s/%s.lv2/%s.ttl' % (dir, name, name)
+ manifest_file = '%s/%s.lv2/manifest.ttl' % (dir, name)
+ bld.install_files('${LV2DIR}/' + name + '.lv2', data_file)
+ bld.install_files('${LV2DIR}/' + name + '.lv2', manifest_file)
+
+def build(bld):
+ ext = '''
+ atom
+ atom-port
+ command
+ contexts
+ data-access
+ dyn-manifest
+ event
+ host-info
+ instance-access
+ midi
+ osc
+ parameter
+ polymorphic-port
+ port-groups
+ presets
+ string-port
+ uri-map
+ variables
+ '''
+ for e in ext.split():
+ build_extension(bld, e, './ext')
+
+ extensions = '''
+ ui
+ units
+ '''
+ for e in extensions.split():
+ build_extension(bld, e, './extensions')
+