#!/usr/bin/env python from waflib.extras import autowaf as autowaf import re # Variables for 'waf dist' APPNAME = 'eg-sampler.lv2' VERSION = '1.0.0' # Mandatory variables top = '.' out = 'build' def options(opt): opt.load('compiler_c') opt.load('lv2') autowaf.set_options(opt) def configure(conf): conf.load('compiler_c', cache=True) conf.load('lv2', cache=True) conf.load('autowaf', cache=True) conf.check_pkg('lv2 >= 1.2.1', uselib_store='LV2') conf.check_pkg('sndfile >= 1.0.0', uselib_store='SNDFILE') conf.check_pkg('gtk+-2.0 >= 2.18.0', uselib_store='GTK2', system=True, mandatory=False) conf.check(features='c cshlib', lib='m', uselib_store='M', mandatory=False) def build(bld): bundle = 'eg-sampler.lv2' # Build manifest.ttl by substitution (for portable lib extension) bld(features = 'subst', source = 'manifest.ttl.in', target = 'lv2/%s/%s' % (bundle, 'manifest.ttl'), install_path = '${LV2DIR}/%s' % bundle, LIB_EXT = bld.env.LV2_LIB_EXT) # Copy other data files to build bundle (build/eg-sampler.lv2) for i in ['sampler.ttl', 'click.wav']: bld(features = 'subst', is_copy = True, source = i, target = 'lv2/%s/%s' % (bundle, i), install_path = '${LV2DIR}/%s' % bundle) # Build plugin library obj = bld(features = 'c cshlib lv2lib', source = 'sampler.c', name = 'sampler', target = 'lv2/%s/sampler' % bundle, install_path = '${LV2DIR}/%s' % bundle, use = ['M', 'SNDFILE', 'LV2']) # Build UI library if bld.env.HAVE_GTK2: obj = bld(features = 'c cshlib lv2lib', source = 'sampler_ui.c', name = 'sampler_ui', target = 'lv2/%s/sampler_ui' % bundle, install_path = '${LV2DIR}/%s' % bundle, use = ['GTK2', 'LV2'])