diff options
author | RJ Ryan <rryan@mixxx.org> | 2013-06-19 00:46:54 -0400 |
---|---|---|
committer | RJ Ryan <rryan@mixxx.org> | 2013-06-19 00:46:54 -0400 |
commit | 25d57b59dff3947212909634864dd82365c9606b (patch) | |
tree | f0d0f8a048f8ed2f45c5ff015fc96891662f72f1 /SConstruct | |
parent | e50f9f168fa08f2be6d0f13e8a225bbcc9de09bb (diff) |
Moving mixxx/* to the root. A new era begins!
Diffstat (limited to 'SConstruct')
-rw-r--r-- | SConstruct | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/SConstruct b/SConstruct new file mode 100644 index 0000000000..81b180ba91 --- /dev/null +++ b/SConstruct @@ -0,0 +1,112 @@ +#!/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" 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")) |