From e103a630847a401523074ce1023134f09668519b Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 20 Apr 2019 19:14:02 +0200 Subject: Fix building within a recursive project --- plugins/eg-amp.lv2/wscript | 11 ++--------- plugins/eg-fifths.lv2/wscript | 11 ++--------- plugins/eg-metro.lv2/wscript | 11 ++--------- plugins/eg-midigate.lv2/wscript | 11 ++--------- plugins/eg-params.lv2/wscript | 11 ++--------- plugins/eg-sampler.lv2/wscript | 15 +++------------ plugins/eg-scope.lv2/wscript | 15 +++------------ wscript | 22 +++++++++++----------- 8 files changed, 27 insertions(+), 80 deletions(-) diff --git a/plugins/eg-amp.lv2/wscript b/plugins/eg-amp.lv2/wscript index fc01bc1..6e44f08 100644 --- a/plugins/eg-amp.lv2/wscript +++ b/plugins/eg-amp.lv2/wscript @@ -20,8 +20,7 @@ def configure(conf): conf.load('lv2', cache=True) conf.load('autowaf', cache=True) - if not autowaf.is_child(): - autowaf.check_pkg(conf, 'lv2', uselib_store='LV2') + autowaf.check_pkg(conf, 'lv2', uselib_store='LV2') conf.check(features='c cshlib', lib='m', uselib_store='M', mandatory=False) @@ -47,17 +46,11 @@ def build(bld): target = '%s/%s' % (bundle, i), install_path = '${LV2DIR}/%s' % bundle) - # Use LV2 headers from parent directory if building as a sub-project - includes = None - if autowaf.is_child: - includes = '../..' - # Build plugin library obj = bld(features = 'c cshlib', source = 'amp.c', name = 'amp', target = '%s/amp' % bundle, install_path = '${LV2DIR}/%s' % bundle, - uselib = 'M LV2', - includes = includes) + uselib = 'M LV2') obj.env.cshlib_PATTERN = module_pat diff --git a/plugins/eg-fifths.lv2/wscript b/plugins/eg-fifths.lv2/wscript index 9adb174..95ab670 100644 --- a/plugins/eg-fifths.lv2/wscript +++ b/plugins/eg-fifths.lv2/wscript @@ -20,8 +20,7 @@ def configure(conf): conf.load('lv2', cache=True) conf.load('autowaf', cache=True) - if not autowaf.is_child(): - autowaf.check_pkg(conf, 'lv2', atleast_version='1.2.1', uselib_store='LV2') + autowaf.check_pkg(conf, 'lv2', atleast_version='1.2.1', uselib_store='LV2') def build(bld): bundle = 'eg-fifths.lv2' @@ -45,17 +44,11 @@ def build(bld): target = '%s/%s' % (bundle, i), install_path = '${LV2DIR}/%s' % bundle) - # Use LV2 headers from parent directory if building as a sub-project - includes = ['.'] - if autowaf.is_child: - includes += ['../..'] - # Build plugin library obj = bld(features = 'c cshlib', source = 'fifths.c', name = 'fifths', target = '%s/fifths' % bundle, install_path = '${LV2DIR}/%s' % bundle, - use = 'LV2', - includes = includes) + use = 'LV2') obj.env.cshlib_PATTERN = module_pat diff --git a/plugins/eg-metro.lv2/wscript b/plugins/eg-metro.lv2/wscript index e91e21f..13b09aa 100644 --- a/plugins/eg-metro.lv2/wscript +++ b/plugins/eg-metro.lv2/wscript @@ -20,8 +20,7 @@ def configure(conf): conf.load('lv2', cache=True) conf.load('autowaf', cache=True) - if not autowaf.is_child(): - autowaf.check_pkg(conf, 'lv2', atleast_version='0.2.0', uselib_store='LV2') + autowaf.check_pkg(conf, 'lv2', atleast_version='0.2.0', uselib_store='LV2') conf.check(features='c cshlib', lib='m', uselib_store='M', mandatory=False) @@ -46,17 +45,11 @@ def build(bld): target = '%s/metro.ttl' % bundle, install_path = '${LV2DIR}/%s' % bundle) - # Use LV2 headers from parent directory if building as a sub-project - includes = ['.'] - if autowaf.is_child: - includes += ['../..'] - # Build plugin library obj = bld(features = 'c cshlib', source = 'metro.c', name = 'metro', target = '%s/metro' % bundle, install_path = '${LV2DIR}/%s' % bundle, - use = ['M', 'LV2'], - includes = includes) + use = ['M', 'LV2']) obj.env.cshlib_PATTERN = module_pat diff --git a/plugins/eg-midigate.lv2/wscript b/plugins/eg-midigate.lv2/wscript index b6a85bb..5dbc774 100644 --- a/plugins/eg-midigate.lv2/wscript +++ b/plugins/eg-midigate.lv2/wscript @@ -20,8 +20,7 @@ def configure(conf): conf.load('lv2', cache=True) conf.load('autowaf', cache=True) - if not autowaf.is_child(): - autowaf.check_pkg(conf, 'lv2', uselib_store='LV2') + autowaf.check_pkg(conf, 'lv2', uselib_store='LV2') def build(bld): bundle = 'eg-midigate.lv2' @@ -45,17 +44,11 @@ def build(bld): target = '%s/%s' % (bundle, i), install_path = '${LV2DIR}/%s' % bundle) - # Use LV2 headers from parent directory if building as a sub-project - includes = None - if autowaf.is_child: - includes = '../..' - # Build plugin library obj = bld(features = 'c cshlib', source = 'midigate.c', name = 'midigate', target = '%s/midigate' % bundle, install_path = '${LV2DIR}/%s' % bundle, - uselib = 'LV2', - includes = includes) + uselib = 'LV2') obj.env.cshlib_PATTERN = module_pat diff --git a/plugins/eg-params.lv2/wscript b/plugins/eg-params.lv2/wscript index f618898..4a7d7a5 100644 --- a/plugins/eg-params.lv2/wscript +++ b/plugins/eg-params.lv2/wscript @@ -20,8 +20,7 @@ def configure(conf): conf.load('lv2', cache=True) conf.load('autowaf', cache=True) - if not autowaf.is_child(): - autowaf.check_pkg(conf, 'lv2', atleast_version='1.12.1', uselib_store='LV2') + autowaf.check_pkg(conf, 'lv2', atleast_version='1.12.1', uselib_store='LV2') def build(bld): bundle = 'eg-params.lv2' @@ -45,17 +44,11 @@ def build(bld): target = '%s/%s' % (bundle, i), install_path = '${LV2DIR}/%s' % bundle) - # Use LV2 headers from parent directory if building as a sub-project - includes = ['.'] - if autowaf.is_child: - includes += ['../..'] - # Build plugin library obj = bld(features = 'c cshlib', source = 'params.c', name = 'params', target = '%s/params' % bundle, install_path = '${LV2DIR}/%s' % bundle, - use = 'LV2', - includes = includes) + use = 'LV2') obj.env.cshlib_PATTERN = module_pat diff --git a/plugins/eg-sampler.lv2/wscript b/plugins/eg-sampler.lv2/wscript index 5d0e03f..7e33d68 100644 --- a/plugins/eg-sampler.lv2/wscript +++ b/plugins/eg-sampler.lv2/wscript @@ -20,9 +20,7 @@ def configure(conf): conf.load('lv2', cache=True) conf.load('autowaf', cache=True) - if not autowaf.is_child(): - autowaf.check_pkg(conf, 'lv2', atleast_version='1.2.1', uselib_store='LV2') - + autowaf.check_pkg(conf, 'lv2', atleast_version='1.2.1', uselib_store='LV2') autowaf.check_pkg(conf, 'sndfile', uselib_store='SNDFILE', atleast_version='1.0.0', mandatory=True) autowaf.check_pkg(conf, 'gtk+-2.0', uselib_store='GTK2', @@ -51,19 +49,13 @@ def build(bld): target = '%s/%s' % (bundle, i), install_path = '${LV2DIR}/%s' % bundle) - # Use LV2 headers from parent directory if building as a sub-project - includes = ['.'] - if autowaf.is_child: - includes += ['../..'] - # Build plugin library obj = bld(features = 'c cshlib', source = 'sampler.c', name = 'sampler', target = '%s/sampler' % bundle, install_path = '${LV2DIR}/%s' % bundle, - use = ['M', 'SNDFILE', 'LV2'], - includes = includes) + use = ['M', 'SNDFILE', 'LV2']) obj.env.cshlib_PATTERN = module_pat # Build UI library @@ -73,6 +65,5 @@ def build(bld): name = 'sampler_ui', target = '%s/sampler_ui' % bundle, install_path = '${LV2DIR}/%s' % bundle, - use = ['GTK2', 'LV2'], - includes = includes) + use = ['GTK2', 'LV2']) obj.env.cshlib_PATTERN = module_pat diff --git a/plugins/eg-scope.lv2/wscript b/plugins/eg-scope.lv2/wscript index 76fece7..ca3413d 100644 --- a/plugins/eg-scope.lv2/wscript +++ b/plugins/eg-scope.lv2/wscript @@ -20,9 +20,7 @@ def configure(conf): conf.load('lv2', cache=True) conf.load('autowaf', cache=True) - if not autowaf.is_child(): - autowaf.check_pkg(conf, 'lv2', atleast_version='1.2.1', uselib_store='LV2') - + autowaf.check_pkg(conf, 'lv2', atleast_version='1.2.1', uselib_store='LV2') autowaf.check_pkg(conf, 'cairo', uselib_store='CAIRO', atleast_version='1.8.10', mandatory=True) autowaf.check_pkg(conf, 'gtk+-2.0', uselib_store='GTK2', @@ -43,19 +41,13 @@ def build(bld): install_path = '${LV2DIR}/%s' % bundle, LIB_EXT = module_ext) - # Use LV2 headers from parent directory if building as a sub-project - includes = ['.'] - if autowaf.is_child: - includes += ['../..'] - # Build plugin library obj = bld(features = 'c cshlib', source = 'examploscope.c', name = 'examploscope', target = '%s/examploscope' % bundle, install_path = '${LV2DIR}/%s' % bundle, - use = 'LV2', - includes = includes) + use = 'LV2') obj.env.cshlib_PATTERN = module_pat # Build UI library @@ -65,6 +57,5 @@ def build(bld): name = 'examploscope_ui', target = '%s/examploscope_ui' % bundle, install_path = '${LV2DIR}/%s' % bundle, - use = 'GTK2 CAIRO LV2', - includes = includes) + use = 'GTK2 CAIRO LV2') obj.env.cshlib_PATTERN = module_pat diff --git a/wscript b/wscript index 9e18fd4..c28c55b 100644 --- a/wscript +++ b/wscript @@ -94,8 +94,6 @@ def configure(conf): and not conf.is_defined('HAVE_GCOV')): conf.check_cc(lib='gcov', define_name='HAVE_GCOV', mandatory=False) - autowaf.set_recursive() - if conf.env.BUILD_PLUGINS: for i in ['eg-amp.lv2', 'eg-fifths.lv2', @@ -155,7 +153,8 @@ def load_ttl(files, exclude = []): # Task to build extension index def build_index(task): - sys.path.append('./lv2specgen') + src_dir = task.inputs[0].parent.parent + sys.path.append(str(src_dir.find_node('lv2specgen'))) import rdflib import lv2specgen @@ -163,7 +162,7 @@ def build_index(task): lv2 = rdflib.Namespace('http://lv2plug.in/ns/lv2core#') rdf = rdflib.Namespace('http://www.w3.org/1999/02/22-rdf-syntax-ns#') - model = load_ttl(['lv2/core/meta.ttl']) + model = load_ttl([str(src_dir.find_node('lv2/core/meta.ttl'))]) # Get date for this version, and list of all LV2 distributions proj = rdflib.URIRef('http://lv2plug.in/ns/lv2') @@ -286,7 +285,7 @@ def build(bld): # Build extensions for spec in specs: - build_spec(bld, spec.srcpath()) + build_spec(bld, spec.path_from(bld.path)) # Build plugins for plugin in bld.env.LV2_BUILD: @@ -347,25 +346,25 @@ def build(bld): index_files = [] for spec in specs: # Call lv2specgen to generate spec docs - srcpath = spec.srcpath() + srcpath = spec.path_from(bld.path) basename = os.path.basename(srcpath) full_path = spec_map[basename] name = 'lv2core' if basename == 'core' else basename ttl_name = name + '.ttl' - index_file = os.path.join('index_rows', name) - index_files += [index_file] + index_file = bld.path.get_bld().make_node('index_rows/' + name) + index_files += [index_file.path_from(bld.path)] root_path = os.path.relpath('lv2/lv2plug.in/ns', full_path) html_path = '%s/%s.html' % (chop_lv2_prefix(full_path), name) out_bundle = os.path.dirname(html_path) - cmd = ('../lv2specgen/lv2specgen.py' + + cmd = (str(bld.path.find_node('lv2specgen/lv2specgen.py')) + ' --root-uri=http://lv2plug.in/ns/ --root-path=' + root_path + ' --list-email=devel@lists.lv2plug.in' ' --list-page=http://lists.lv2plug.in/listinfo.cgi/devel-lv2plug.in' ' --style-uri=' + os.path.relpath('aux/style.css', out_bundle) + ' --docdir=' + os.path.relpath('doc/html', os.path.dirname(html_path)) + - ' --tags=doc/tags' + - ' --index=' + index_file + + ' --tags=%s' % bld.path.get_bld().make_node('doc/tags') + + ' --index=' + str(index_file) + (' --online' if bld.env.ONLINE_DOCS else '') + ' ${SRC} ${TGT}') @@ -418,6 +417,7 @@ def build(bld): bld(features = 'c cprogram', source = bld.path.get_bld().make_node('build-test.c'), target = 'build-test', + includes = '.', install_path = None) if bld.env.BUILD_BOOK: -- cgit v1.2.1