aboutsummaryrefslogtreecommitdiffstats
path: root/wscript
diff options
context:
space:
mode:
Diffstat (limited to 'wscript')
-rw-r--r--wscript84
1 files changed, 84 insertions, 0 deletions
diff --git a/wscript b/wscript
new file mode 100644
index 0000000..a2a35f7
--- /dev/null
+++ b/wscript
@@ -0,0 +1,84 @@
+#!/usr/bin/env python
+import os
+import shutil
+import subprocess
+from waflib.extras import autowaf as autowaf
+
+# Version of this package (even if built as a child)
+FOMP_VERSION = '0.0.0'
+
+# Variables for 'waf dist'
+APPNAME = 'fomp.lv2'
+VERSION = FOMP_VERSION
+
+# Mandatory variables
+top = '.'
+out = 'build'
+
+def options(opt):
+ opt.load('compiler_cxx')
+ autowaf.set_options(opt)
+
+def configure(conf):
+ conf.load('compiler_cxx')
+ autowaf.configure(conf)
+ autowaf.set_c99_mode(conf)
+ autowaf.display_header('Fomp.LV2 Configuration')
+
+ autowaf.check_pkg(conf, 'lv2', atleast_version='1.0.0', uselib_store='LV2')
+
+ # Set env.pluginlib_PATTERN
+ pat = conf.env.cxxshlib_PATTERN
+ if pat[0:3] == 'lib':
+ pat = pat[3:]
+ conf.env.pluginlib_PATTERN = pat
+ conf.env.pluginlib_EXT = pat[pat.rfind('.'):]
+
+ autowaf.display_msg(conf, "LV2 bundle directory",
+ conf.env.LV2DIR)
+ print('')
+
+def build_plugin(bld, lang, bundle, name, source, defines=None):
+ # Build plugin library
+ penv = bld.env.derive()
+ penv.cxxshlib_PATTERN = bld.env.pluginlib_PATTERN
+ obj = bld(features = '%s %sshlib' % (lang,lang),
+ env = penv,
+ source = source,
+ includes = ['.', 'src/include'],
+ name = name,
+ target = os.path.join(bundle, name),
+ uselib = ['LV2'],
+ install_path = '${LV2DIR}/' + bundle)
+ if defines != None:
+ obj.defines = defines
+
+def build(bld):
+ # Copy data files to build bundle (build/fomp.lv2)
+ def do_copy(task):
+ src = task.inputs[0].abspath()
+ tgt = task.outputs[0].abspath()
+ return shutil.copy(src, tgt)
+
+ for i in bld.path.ant_glob('fomp.lv2/*.ttl'):
+ bld(features = 'subst',
+ is_copy = True,
+ source = i,
+ target = bld.path.get_bld().make_node('fomp.lv2/%s' % i),
+ install_path = '${LV2DIR}/fomp.lv2')
+
+ bld(features = 'subst',
+ source = 'fomp.lv2/manifest.ttl.in',
+ target = bld.path.get_bld().make_node('fomp.lv2/manifest.ttl'),
+ LIB_EXT = bld.env.pluginlib_EXT,
+ install_path = '${LV2DIR}/fomp.lv2')
+
+ plugins = ['blvco',
+ 'cs_chorus',
+ 'cs_phaser',
+ 'mvchpf24',
+ 'mvclpf24']
+ for i in plugins:
+ build_plugin(bld, 'cxx', 'fomp.lv2', i,
+ ['src/%s.cc' % i,
+ 'src/%s_lv2.cc' % i])