diff options
author | David Robillard <d@drobilla.net> | 2019-11-10 15:34:28 +0100 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2019-11-10 17:50:02 +0100 |
commit | cb046d7b5eb0f8bc3937a29a1ba8957bb5574912 (patch) | |
tree | 7a19f7f6ed0d16c952dd923c7ea29082a112c9f2 | |
parent | 49777ffd4a2e5e508d52aa336c3e4599c42215c8 (diff) | |
download | lv2-cb046d7b5eb0f8bc3937a29a1ba8957bb5574912.tar.xz |
Simplify plugin building and set up source tree run environment
This sets up LV2_PATH in waf tests so that tests can use specifications and
plugins from the source tree without installing.
-rw-r--r-- | plugins/eg-amp.lv2/wscript | 15 | ||||
-rw-r--r-- | plugins/eg-fifths.lv2/wscript | 15 | ||||
-rw-r--r-- | plugins/eg-metro.lv2/wscript | 15 | ||||
-rw-r--r-- | plugins/eg-midigate.lv2/wscript | 15 | ||||
-rw-r--r-- | plugins/eg-params.lv2/wscript | 15 | ||||
-rw-r--r-- | plugins/eg-sampler.lv2/wscript | 20 | ||||
-rw-r--r-- | plugins/eg-scope.lv2/wscript | 18 | ||||
m--------- | waflib | 0 | ||||
-rw-r--r-- | wscript | 5 |
9 files changed, 43 insertions, 75 deletions
diff --git a/plugins/eg-amp.lv2/wscript b/plugins/eg-amp.lv2/wscript index 2949937..822825d 100644 --- a/plugins/eg-amp.lv2/wscript +++ b/plugins/eg-amp.lv2/wscript @@ -27,30 +27,25 @@ def configure(conf): def build(bld): bundle = 'eg-amp.lv2' - # Make a pattern for shared objects without the 'lib' prefix - module_pat = re.sub('^lib', '', bld.env.cshlib_PATTERN) - module_ext = module_pat[module_pat.rfind('.'):] - # Build manifest.ttl by substitution (for portable lib extension) bld(features = 'subst', source = 'manifest.ttl.in', - target = '%s/%s' % (bundle, 'manifest.ttl'), + target = 'lv2/%s/%s' % (bundle, 'manifest.ttl'), install_path = '${LV2DIR}/%s' % bundle, - LIB_EXT = module_ext) + LIB_EXT = bld.env.LV2_LIB_EXT) # Copy other data files to build bundle (build/eg-amp.lv2) for i in ['amp.ttl']: bld(features = 'subst', is_copy = True, source = i, - target = '%s/%s' % (bundle, i), + target = 'lv2/%s/%s' % (bundle, i), install_path = '${LV2DIR}/%s' % bundle) # Build plugin library - obj = bld(features = 'c cshlib', + obj = bld(features = 'c cshlib lv2lib', source = 'amp.c', name = 'amp', - target = '%s/amp' % bundle, + target = 'lv2/%s/amp' % bundle, install_path = '${LV2DIR}/%s' % bundle, uselib = 'M LV2') - obj.env.cshlib_PATTERN = module_pat diff --git a/plugins/eg-fifths.lv2/wscript b/plugins/eg-fifths.lv2/wscript index 5bf0aff..8b2991b 100644 --- a/plugins/eg-fifths.lv2/wscript +++ b/plugins/eg-fifths.lv2/wscript @@ -25,30 +25,25 @@ def configure(conf): def build(bld): bundle = 'eg-fifths.lv2' - # Make a pattern for shared objects without the 'lib' prefix - module_pat = re.sub('^lib', '', bld.env.cshlib_PATTERN) - module_ext = module_pat[module_pat.rfind('.'):] - # Build manifest.ttl by substitution (for portable lib extension) bld(features = 'subst', source = 'manifest.ttl.in', - target = '%s/%s' % (bundle, 'manifest.ttl'), + target = 'lv2/%s/%s' % (bundle, 'manifest.ttl'), install_path = '${LV2DIR}/%s' % bundle, - LIB_EXT = module_ext) + LIB_EXT = bld.env.LV2_LIB_EXT) # Copy other data files to build bundle (build/eg-fifths.lv2) for i in ['fifths.ttl']: bld(features = 'subst', is_copy = True, source = i, - target = '%s/%s' % (bundle, i), + target = 'lv2/%s/%s' % (bundle, i), install_path = '${LV2DIR}/%s' % bundle) # Build plugin library - obj = bld(features = 'c cshlib', + obj = bld(features = 'c cshlib lv2lib', source = 'fifths.c', name = 'fifths', - target = '%s/fifths' % bundle, + target = 'lv2/%s/fifths' % bundle, install_path = '${LV2DIR}/%s' % bundle, use = 'LV2') - obj.env.cshlib_PATTERN = module_pat diff --git a/plugins/eg-metro.lv2/wscript b/plugins/eg-metro.lv2/wscript index 58f6743..5fb0d07 100644 --- a/plugins/eg-metro.lv2/wscript +++ b/plugins/eg-metro.lv2/wscript @@ -27,29 +27,24 @@ def configure(conf): def build(bld): bundle = 'eg-metro.lv2' - # Make a pattern for shared objects without the 'lib' prefix - module_pat = re.sub('^lib', '', bld.env.cshlib_PATTERN) - module_ext = module_pat[module_pat.rfind('.'):] - # Build manifest.ttl by substitution (for portable lib extension) bld(features = 'subst', source = 'manifest.ttl.in', - target = '%s/%s' % (bundle, 'manifest.ttl'), + target = 'lv2/%s/%s' % (bundle, 'manifest.ttl'), install_path = '${LV2DIR}/%s' % bundle, - LIB_EXT = module_ext) + LIB_EXT = bld.env.LV2_LIB_EXT) # Copy other data files to build bundle (build/eg-metro.lv2) bld(features = 'subst', is_copy = True, source = 'metro.ttl', - target = '%s/metro.ttl' % bundle, + target = 'lv2/%s/metro.ttl' % bundle, install_path = '${LV2DIR}/%s' % bundle) # Build plugin library - obj = bld(features = 'c cshlib', + obj = bld(features = 'c cshlib lv2lib', source = 'metro.c', name = 'metro', - target = '%s/metro' % bundle, + target = 'lv2/%s/metro' % bundle, install_path = '${LV2DIR}/%s' % bundle, use = ['M', 'LV2']) - obj.env.cshlib_PATTERN = module_pat diff --git a/plugins/eg-midigate.lv2/wscript b/plugins/eg-midigate.lv2/wscript index e95bf87..5862721 100644 --- a/plugins/eg-midigate.lv2/wscript +++ b/plugins/eg-midigate.lv2/wscript @@ -25,30 +25,25 @@ def configure(conf): def build(bld): bundle = 'eg-midigate.lv2' - # Make a pattern for shared objects without the 'lib' prefix - module_pat = re.sub('^lib', '', bld.env.cshlib_PATTERN) - module_ext = module_pat[module_pat.rfind('.'):] - # Build manifest.ttl by substitution (for portable lib extension) bld(features = 'subst', source = 'manifest.ttl.in', - target = '%s/%s' % (bundle, 'manifest.ttl'), + target = 'lv2/%s/%s' % (bundle, 'manifest.ttl'), install_path = '${LV2DIR}/%s' % bundle, - LIB_EXT = module_ext) + LIB_EXT = bld.env.LV2_LIB_EXT) # Copy other data files to build bundle (build/eg-midigate.lv2) for i in ['midigate.ttl']: bld(features = 'subst', is_copy = True, source = i, - target = '%s/%s' % (bundle, i), + target = 'lv2/%s/%s' % (bundle, i), install_path = '${LV2DIR}/%s' % bundle) # Build plugin library - obj = bld(features = 'c cshlib', + obj = bld(features = 'c cshlib lv2lib', source = 'midigate.c', name = 'midigate', - target = '%s/midigate' % bundle, + target = 'lv2/%s/midigate' % bundle, install_path = '${LV2DIR}/%s' % bundle, uselib = 'LV2') - obj.env.cshlib_PATTERN = module_pat diff --git a/plugins/eg-params.lv2/wscript b/plugins/eg-params.lv2/wscript index 8e5095e..503e8db 100644 --- a/plugins/eg-params.lv2/wscript +++ b/plugins/eg-params.lv2/wscript @@ -25,30 +25,25 @@ def configure(conf): def build(bld): bundle = 'eg-params.lv2' - # Make a pattern for shared objects without the 'lib' prefix - module_pat = re.sub('^lib', '', bld.env.cshlib_PATTERN) - module_ext = module_pat[module_pat.rfind('.'):] - # Build manifest.ttl by substitution (for portable lib extension) bld(features = 'subst', source = 'manifest.ttl.in', - target = '%s/%s' % (bundle, 'manifest.ttl'), + target = 'lv2/%s/%s' % (bundle, 'manifest.ttl'), install_path = '${LV2DIR}/%s' % bundle, - LIB_EXT = module_ext) + LIB_EXT = bld.env.LV2_LIB_EXT) # Copy other data files to build bundle (build/eg-params.lv2) for i in ['params.ttl']: bld(features = 'subst', is_copy = True, source = i, - target = '%s/%s' % (bundle, i), + target = 'lv2/%s/%s' % (bundle, i), install_path = '${LV2DIR}/%s' % bundle) # Build plugin library - obj = bld(features = 'c cshlib', + obj = bld(features = 'c cshlib lv2lib', source = 'params.c', name = 'params', - target = '%s/params' % bundle, + target = 'lv2/%s/params' % bundle, install_path = '${LV2DIR}/%s' % bundle, use = 'LV2') - obj.env.cshlib_PATTERN = module_pat diff --git a/plugins/eg-sampler.lv2/wscript b/plugins/eg-sampler.lv2/wscript index 20233c7..8c640c1 100644 --- a/plugins/eg-sampler.lv2/wscript +++ b/plugins/eg-sampler.lv2/wscript @@ -31,40 +31,34 @@ def configure(conf): def build(bld): bundle = 'eg-sampler.lv2' - # Make a pattern for shared objects without the 'lib' prefix - module_pat = re.sub('^lib', '', bld.env.cshlib_PATTERN) - module_ext = module_pat[module_pat.rfind('.'):] - # Build manifest.ttl by substitution (for portable lib extension) bld(features = 'subst', source = 'manifest.ttl.in', - target = '%s/%s' % (bundle, 'manifest.ttl'), + target = 'lv2/%s/%s' % (bundle, 'manifest.ttl'), install_path = '${LV2DIR}/%s' % bundle, - LIB_EXT = module_ext) + 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 = '%s/%s' % (bundle, i), + target = 'lv2/%s/%s' % (bundle, i), install_path = '${LV2DIR}/%s' % bundle) # Build plugin library - obj = bld(features = 'c cshlib', + obj = bld(features = 'c cshlib lv2lib', source = 'sampler.c', name = 'sampler', - target = '%s/sampler' % bundle, + target = 'lv2/%s/sampler' % bundle, install_path = '${LV2DIR}/%s' % bundle, use = ['M', 'SNDFILE', 'LV2']) - obj.env.cshlib_PATTERN = module_pat # Build UI library if bld.env.HAVE_GTK2: - obj = bld(features = 'c cshlib', + obj = bld(features = 'c cshlib lv2lib', source = 'sampler_ui.c', name = 'sampler_ui', - target = '%s/sampler_ui' % bundle, + target = 'lv2/%s/sampler_ui' % bundle, install_path = '${LV2DIR}/%s' % bundle, use = ['GTK2', 'LV2']) - obj.env.cshlib_PATTERN = module_pat diff --git a/plugins/eg-scope.lv2/wscript b/plugins/eg-scope.lv2/wscript index 847d5d1..4333502 100644 --- a/plugins/eg-scope.lv2/wscript +++ b/plugins/eg-scope.lv2/wscript @@ -30,33 +30,27 @@ def configure(conf): def build(bld): bundle = 'eg-scope.lv2' - # Make a pattern for shared objects without the 'lib' prefix - module_pat = re.sub('^lib', '', bld.env.cshlib_PATTERN) - module_ext = module_pat[module_pat.rfind('.'):] - # Build manifest.ttl by substitution (for portable lib extension) for i in ['manifest.ttl', 'examploscope.ttl']: bld(features = 'subst', source = i + '.in', - target = '%s/%s' % (bundle, i), + target = 'lv2/%s/%s' % (bundle, i), install_path = '${LV2DIR}/%s' % bundle, - LIB_EXT = module_ext) + LIB_EXT = bld.env.LV2_LIB_EXT) # Build plugin library - obj = bld(features = 'c cshlib', + obj = bld(features = 'c cshlib lv2lib', source = 'examploscope.c', name = 'examploscope', - target = '%s/examploscope' % bundle, + target = 'lv2/%s/examploscope' % bundle, install_path = '${LV2DIR}/%s' % bundle, use = 'LV2') - obj.env.cshlib_PATTERN = module_pat # Build UI library if bld.env.HAVE_GTK2: - obj = bld(features = 'c cshlib', + obj = bld(features = 'c cshlib lv2lib', source = 'examploscope_ui.c', name = 'examploscope_ui', - target = '%s/examploscope_ui' % bundle, + target = 'lv2/%s/examploscope_ui' % bundle, install_path = '${LV2DIR}/%s' % bundle, use = 'GTK2 CAIRO LV2') - obj.env.cshlib_PATTERN = module_pat diff --git a/waflib b/waflib -Subproject de76b89dc1039e2f7d6c6b229a8950156b0e5c9 +Subproject c87cc53c643c60867665b333d5999fe07196d54 @@ -97,6 +97,9 @@ def configure(conf): autowaf.set_lib_env(conf, 'lv2', VERSION, has_objects=False) autowaf.set_local_lib(conf, 'lv2', has_objects=False) + conf.run_env.append_unique('LV2_PATH', + [os.path.join(conf.path.abspath(), 'lv2')]) + if conf.env.BUILD_PLUGINS: for i in ['eg-amp.lv2', 'eg-fifths.lv2', @@ -109,6 +112,8 @@ def configure(conf): path = os.path.join('plugins', i) conf.recurse(path) conf.env.LV2_BUILD += [path] + conf.run_env.append_unique( + 'LV2_PATH', [conf.build_path('plugins/%s/lv2' % i)]) except Exception as e: Logs.warn('Configuration failed, not building %s (%s)' % (i, e)) |