summaryrefslogtreecommitdiffstats
path: root/SConstruct
diff options
context:
space:
mode:
authorRJ Skerry-Ryan <rryan@mixxx.org>2018-10-13 13:35:47 -0700
committerRJ Skerry-Ryan <rryan@mixxx.org>2018-10-24 09:49:21 -0700
commit36e9ca77a6b852087d35232685ae2cef326412fc (patch)
treef3d7739e2d6c61088fed640290b14236755ab563 /SConstruct
parent9ebb94ddf9cce9b37c908cbac4c3a0843f286a4c (diff)
Build library objects in the SConscript variant_dir.
SCons has a feature that lets you declare a repository-root absolute path to a file (e.g. "#lib/soundtouch/..."). Using this feature prevents SCons from automatically re-directing built artifacts to a variant_dir. To work around this, this commit moves src/SConscript and src/SConscript.env to the root, and changes all paths in SConscripts to use SConscript-relative paths. This commit also switches to building an explicit static library for vamp-hostdk, vamp-sdk, and soundtouch when internal linking is enabled and the VAMP plugin now uses the system soundtouch if it is present. Fixes Bug #1191327 and Bug #1617802.
Diffstat (limited to 'SConstruct')
-rw-r--r--SConstruct24
1 files changed, 15 insertions, 9 deletions
diff --git a/SConstruct b/SConstruct
index 791258b60f..2379ca9790 100644
--- a/SConstruct
+++ b/SConstruct
@@ -61,7 +61,6 @@ available_features = [features.Mad,
# "Features" of dubious quality
features.PerfTools,
features.AsmLib,
- features.IPod,
features.FFMPEG,
# Experimental features
@@ -75,7 +74,16 @@ Export('build')
# Run our configuration stuff to setup our build environment (detect
# platform/arch, find libraries, etc)
-SConscript(File('src/SConscript.env'), variant_dir=Dir(build.build_dir), duplicate=0)
+
+# If the variant_dir does not exist then we will not chdir into it when calling
+# SConscript.env, making the imperative logic (e.g. writing build.h) in
+# SConscript.env behave differently on the first invocation vs. subsequent
+# invocations.
+try:
+ os.mkdir(build.build_dir)
+except:
+ pass
+SConscript('SConscript.env', variant_dir=build.build_dir, duplicate=0)
# Grab the list of sources generated by SConscript.env
Import('sources')
@@ -86,17 +94,15 @@ build.env.Alias("compiledb", build.env.CompilationDatabase('compile_commands.jso
# Build compile_commands.json by default.
build.env.Default("compile_commands.json")
-#Build Vamp minimal plugins
-#VariantDir("vamp-plugins", "src", duplicate=0)
-mixxxminimal_depends = [ depends.SoundTouch ]
+# Build VAMP plugins.
mixxxminimal_plugins = SConscript(
- File('vamp-plugins/SConscript'),
- variant_dir=Dir(build.build_dir + "/vamp-plugins"),
- duplicate=0, exports=['build', 'mixxxminimal_depends'])
+ 'vamp-plugins/SConscript',
+ variant_dir=build.build_dir + "/vamp-plugins",
+ duplicate=0, exports=['build'])
# Setup and build the "mixxx" executable target. Also sets up our install
# targets for each platform.
-SConscript(File('src/SConscript'), variant_dir=Dir(build.build_dir), duplicate=0,
+SConscript('SConscript', variant_dir=build.build_dir, duplicate=0,
exports=['build', 'sources', 'mixxxminimal_plugins'])
#On OS X, if the bundle has been built, copy it up: