summaryrefslogtreecommitdiffstats
path: root/SConstruct
diff options
context:
space:
mode:
authorDaniel Schürmann <daschuer@mixxx.org>2013-06-20 23:54:31 +0200
committerDaniel Schürmann <daschuer@mixxx.org>2013-06-20 23:54:31 +0200
commit8e03aa0ea5948f0860ac81ad7be4a73dd9505fe3 (patch)
tree482d81cb530c7d40e3255d14b4c318cb8b809158 /SConstruct
parent72cad18215798877eb7efe9aa179ab5fd3b4b746 (diff)
parentb80a572a435c3251cdabf3073ac78a737455168a (diff)
Merge branch 'master' into auto-dj-crates
Conflicts: mixxx/res/schema.xml mixxx/src/dlgprefcontrols.cpp mixxx/src/library/trackcollection.cpp
Diffstat (limited to 'SConstruct')
-rw-r--r--SConstruct113
1 files changed, 113 insertions, 0 deletions
diff --git a/SConstruct b/SConstruct
new file mode 100644
index 0000000000..d52f8c09c0
--- /dev/null
+++ b/SConstruct
@@ -0,0 +1,113 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+import os
+
+# machine-system settings we support
+#
+# iX86-mingw32-
+# iX86-apple-darwin9
+# x86_64-apple-darwin9
+# powerpc-apple-darwin9
+# poperpc64-apple-darwin9
+# iX86-linux-gnu
+# x86_64-linux-gnu
+
+# platform = [win, osx, bsd, linux]
+# machine = [iX86, x86_64, powerpc, powerpc64]
+# toolchain = [gnu, msvc]
+# target = [debug, release]
+
+# If you don't specify your platform, we autodetect platform/machine using
+# python. If you don't specify your machine then we pick iX86 by default
+#
+# default toolchain: gnu (you'll get an error on Windows if unspecified)
+# default build: debug
+
+import logging
+logging.getLogger().setLevel(logging.DEBUG)
+
+from build import mixxx, features, depends
+target = ARGUMENTS.get('target', None)
+machine = ARGUMENTS.get('machine', None)
+build_type = ARGUMENTS.get('build', None)
+toolchain = ARGUMENTS.get('toolchain', None)
+
+available_features = [features.HifiEq,
+ features.Mad,
+ features.CoreAudio,
+ features.MediaFoundation,
+ features.HSS1394,
+ features.HID,
+ features.Bulk,
+ features.VinylControl,
+ features.Shoutcast,
+ features.Profiling,
+ features.Tuned,
+ features.QDebug,
+ features.Verbose,
+ features.Optimize,
+ features.FAAD,
+ features.WavPack,
+ features.ModPlug,
+ features.TestSuite,
+ features.LADSPA,
+ features.MSVCDebug,
+ features.MSVSHacks,
+ features.Vamp,
+ features.PromoTracks,
+ features.AutoDjCrates,
+
+ # "Features" of dubious quality
+ features.PerfTools,
+ features.AsmLib,
+ features.Tonal,
+ features.IPod,
+ features.FFMPEG,
+ ]
+
+build = mixxx.MixxxBuild(target, machine, build_type,
+ toolchain, available_features)
+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)
+
+# Grab the list of sources generated by SConscript.env
+Import('sources')
+
+# Make the main src directory accessible to the SoundSourceM4A, so
+# SoundSourceM4A can get at sounddevice.cpp, which it needs to build
+# and link properly. This sucks but it's the best way I can find -- bkgood
+VariantDir("plugins/soundsourcem4a", "src", duplicate=0)
+VariantDir("plugins/soundsourcewv", "src", duplicate=0)
+VariantDir("plugins/soundsourcemediafoundation", "src", duplicate=0)
+
+# Build our soundsource plugins
+soundsource_plugins = SConscript(
+ File('plugins/SConscript'), variant_dir=Dir(build.build_dir + "/plugins"),
+ duplicate=0, exports=['build'])
+
+#Build Vamp minimal plugins
+#VariantDir("vamp-plugins", "src", duplicate=0)
+mixxxminimal_depends = [ depends.SoundTouch ]
+mixxxminimal_plugins = SConscript(
+ File('vamp-plugins/SConscript'),
+ variant_dir=Dir(build.build_dir + "/vamp-plugins"),
+ duplicate=0, exports=['build', 'mixxxminimal_depends'])
+
+# 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,
+ exports=['build', 'sources', 'soundsource_plugins', 'mixxxminimal_plugins'])
+
+# For convenience, copy the Mixxx binary out of the build directory to the
+# root. Don't do it on windows because the binary can't run on its own and needs
+# the DLLs present with it.
+if not build.platform_is_windows:
+ Command("mixxx", os.path.join(build.build_dir, "mixxx"), Copy("$TARGET", "$SOURCE"))
+
+
+
+#On OS X, if the bundle has been built, copy it up:
+#Command("Mixxx.app", os.path.join(build.build_dir, "Mixxx.app"), Copy("$TARGET", "$SOURCE"))