summaryrefslogtreecommitdiffstats
path: root/extras
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2019-11-10 15:28:59 +0100
committerDavid Robillard <d@drobilla.net>2019-11-10 15:29:57 +0100
commit3140fcc903612f08a9a95951122b9a26856ff36f (patch)
tree6cecf87483989933d46f224edb6e670de254a32e /extras
parent0bde0c2e022c479b8c7e3933eca0cbc012825624 (diff)
downloadautowaf-3140fcc903612f08a9a95951122b9a26856ff36f.tar.gz
autowaf-3140fcc903612f08a9a95951122b9a26856ff36f.tar.bz2
autowaf-3140fcc903612f08a9a95951122b9a26856ff36f.zip
Add lv2lib feature for building plugin binaries
Diffstat (limited to 'extras')
-rw-r--r--extras/lv2.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/extras/lv2.py b/extras/lv2.py
index ffcb2e7..8376459 100644
--- a/extras/lv2.py
+++ b/extras/lv2.py
@@ -1,8 +1,10 @@
import os
+import re
import sys
from waflib import Logs
from waflib import Options
+from waflib import TaskGen
def options(opt):
conf_opts = opt.get_option_group('Configuration options')
@@ -37,7 +39,7 @@ def default_lv2_path(conf):
return ['~/.lv2',
'/usr/%s/lv2' % libdirname,
'/usr/local/%s/lv2' % libdirname]
-
+
def configure(conf):
def env_path(parent_dir_var, name):
parent = os.getenv(parent_dir_var)
@@ -73,3 +75,15 @@ def configure(conf):
# Add default LV2_PATH to runtime environment for tests that use plugins
if 'LV2_PATH' not in os.environ:
conf.run_env['LV2_PATH'] = default_lv2_path(conf)
+
+ # Define dynamically loadable module pattern and extension
+ lib_pat = re.sub('^lib', '', conf.env.cshlib_PATTERN)
+ conf.env['LV2_LIB_PATTERN'] = lib_pat
+ conf.env['LV2_LIB_EXT'] = lib_pat[lib_pat.rfind('.'):]
+
+@TaskGen.feature('lv2lib')
+@TaskGen.before_method('apply_link', 'propagate_uselib_vars')
+def build_lv2_lib(self):
+ """Change library pattern to build a module without the "lib" prefix"""
+ self.env.cshlib_PATTERN = self.env.LV2_LIB_PATTERN
+ self.env.cxxshlib_PATTERN = self.env.LV2_LIB_PATTERN