aboutsummaryrefslogtreecommitdiffstats
path: root/lv2/lv2plug.in/ns/lv2core/wscript
diff options
context:
space:
mode:
Diffstat (limited to 'lv2/lv2plug.in/ns/lv2core/wscript')
-rw-r--r--lv2/lv2plug.in/ns/lv2core/wscript83
1 files changed, 83 insertions, 0 deletions
diff --git a/lv2/lv2plug.in/ns/lv2core/wscript b/lv2/lv2plug.in/ns/lv2core/wscript
new file mode 100644
index 0000000..c70aa1d
--- /dev/null
+++ b/lv2/lv2plug.in/ns/lv2core/wscript
@@ -0,0 +1,83 @@
+#!/usr/bin/env python
+import os
+
+from waflib.extras import autowaf as autowaf
+import waflib.Options as Options
+import glob
+
+# Version of this package (even if built as a child)
+LV2CORE_VERSION = '12.0'
+
+# Variables for 'waf dist'
+APPNAME = 'lv2core'
+VERSION = LV2CORE_VERSION
+
+# Mandatory variables
+top = '.'
+out = 'build'
+
+def options(opt):
+ opt.load('compiler_c')
+ autowaf.set_options(opt)
+ opt.add_option('--bundle-only', action='store_true', default=False,
+ dest='bundle_only',
+ help="Only install bundle (not header or pkg-config file)")
+ opt.add_option('--copy-headers', action='store_true', default=False,
+ dest='copy_headers',
+ help='Copy headers instead of linking to bundle')
+
+def configure(conf):
+ if not hasattr(os.path, 'relpath') and not Options.options.copy_headers:
+ conf.fatal(
+ 'os.path.relpath missing, get Python 2.6 or use --copy-headers')
+
+ conf.load('compiler_c', cache=True)
+ conf.load('autowaf', cache=True)
+
+ autowaf.display_msg(conf, "LV2 bundle directory", conf.env['LV2DIR'])
+ print('')
+
+def build(bld):
+ # Header "library"
+ bld(export_includes = ['.'],
+ name = 'liblv2core',
+ target = 'lv2core')
+
+ # Bundle (data)
+ bld.install_files('${LV2DIR}/lv2core.lv2', bld.path.ant_glob('*.ttl'))
+
+ if not Options.options.bundle_only:
+ # Header
+ bld.install_files('${INCLUDEDIR}', 'lv2.h')
+ bld.install_files('${LV2DIR}/lv2core.lv2', 'lv2.h')
+ bld.install_files('${LV2DIR}/lv2core.lv2', 'lv2_util.h')
+
+ # Pkgconfig file
+ autowaf.build_pc(bld, 'LV2CORE', LV2CORE_VERSION, '', [])
+
+ # URI-like header include
+ include_dir = os.path.join(bld.env['INCLUDEDIR'], 'lv2/lv2plug.in/ns')
+ bundle_dir = os.path.join(bld.env['LV2DIR'], 'lv2core.lv2')
+ if bld.env['COPY_HEADERS']:
+ bld.install_files(os.path.join(include_dir, 'lv2core'),
+ bld.path.ant_glob('*.h'))
+ else:
+ bld.symlink_as(os.path.join(include_dir, 'lv2core'),
+ os.path.relpath(bundle_dir, include_dir))
+
+def news(ctx):
+ path = ctx.path.abspath()
+ autowaf.write_news(APPNAME,
+ glob.glob(os.path.join(path, '*.ttl')),
+ os.path.join(path, 'NEWS'))
+
+def pre_dist(ctx):
+ # Write NEWS file in source directory
+ news(ctx)
+
+def post_dist(ctx):
+ # Delete generated NEWS file
+ try:
+ os.remove(os.path.join(ctx.path.abspath(), 'NEWS'))
+ except:
+ pass