aboutsummaryrefslogtreecommitdiffstats
path: root/wscript
diff options
context:
space:
mode:
Diffstat (limited to 'wscript')
-rw-r--r--wscript101
1 files changed, 101 insertions, 0 deletions
diff --git a/wscript b/wscript
new file mode 100644
index 0000000..82279b4
--- /dev/null
+++ b/wscript
@@ -0,0 +1,101 @@
+#!/usr/bin/env python
+
+import os
+import shutil
+
+from waflib.extras import autowaf
+
+# Version of this package (even if built as a child)
+FOMP_VERSION = '1.1.0'
+
+# Mandatory waf variables
+APPNAME = 'fomp' # Package name for waf dist
+VERSION = FOMP_VERSION # Package version for waf dist
+top = '.' # Source directory
+out = 'build' # Build directory
+
+def options(opt):
+ opt.load('compiler_cxx')
+ opt.load('lv2')
+ autowaf.set_options(opt)
+
+def configure(conf):
+ autowaf.display_header('Fomp.LV2 Configuration')
+ conf.load('compiler_cxx', cache=True)
+ conf.load('lv2', cache=True)
+ conf.load('autowaf', cache=True)
+ autowaf.set_c_lang(conf, 'c99')
+
+ 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_summary(conf, {'LV2 bundle directory': conf.env.LV2DIR})
+
+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 = 'fomp.lv2/%s' % i.name,
+ install_path = '${LV2DIR}/fomp.lv2')
+
+ bld(features = 'subst',
+ source = 'fomp.lv2/manifest.ttl.in',
+ target = 'fomp.lv2/manifest.ttl',
+ LIB_EXT = bld.env.pluginlib_EXT,
+ install_path = '${LV2DIR}/fomp.lv2')
+
+ plugins = ['autowah',
+ 'blvco',
+ 'cs_chorus',
+ 'cs_phaser',
+ 'filters',
+ 'mvchpf24',
+ 'mvclpf24']
+ for i in plugins:
+ build_plugin(bld, 'cxx', 'fomp.lv2', i,
+ ['src/%s.cc' % i,
+ 'src/%s_lv2.cc' % i])
+ build_plugin(bld, 'cxx', 'fomp.lv2', 'reverbs',
+ ['src/reverbs.cc',
+ 'src/pareq.cc',
+ 'src/zreverb.cc',
+ 'src/reverbs_lv2.cc'])
+
+def posts(ctx):
+ path = str(ctx.path.abspath())
+ autowaf.news_to_posts(
+ os.path.join(path, 'NEWS'),
+ {'title' : 'Fomp.LV2',
+ 'description' : autowaf.get_blurb(os.path.join(path, 'README')),
+ 'dist_pattern' : 'http://download.drobilla.net/fomp-lv2-%s.tar.bz2'},
+ { 'Author' : 'drobilla',
+ 'Tags' : 'LV2, Fomp.lv2' },
+ os.path.join(out, 'posts'))