[SCM] mixxx/master: Remove cruft
sramacher at users.alioth.debian.org
sramacher at users.alioth.debian.org
Tue Jan 26 11:07:00 UTC 2016
The following commit has been merged in the master branch:
commit 4b2d5c53f26fa905da2aafba3d0ec16c61177b4e
Author: Sebastian Ramacher <sramacher at debian.org>
Date: Tue Jan 26 12:05:39 2016 +0100
Remove cruft
diff --git a/debian/patches/0005-hidapi.patch b/debian/patches/0005-hidapi.patch
index 5282d2c..9bbaf84 100644
--- a/debian/patches/0005-hidapi.patch
+++ b/debian/patches/0005-hidapi.patch
@@ -2,9 +2,9 @@ Description: Use system libhidapi
Origin: upstream, https://github.com/mixxxdj/mixxx/pull/856
Last-Update: 2016-01-25
---- mixxx-2.0.0~dfsg.orig/build/features.py
-+++ mixxx-2.0.0~dfsg/build/features.py
-@@ -45,6 +45,7 @@ class HSS1394(Feature):
+--- a/build/features.py
++++ b/build/features.py
+@@ -45,6 +45,7 @@
class HID(Feature):
@@ -12,7 +12,7 @@ Last-Update: 2016-01-25
HIDAPI_INTERNAL_PATH = '#lib/hidapi-0.8.0-rc1'
def description(self):
-@@ -62,18 +63,19 @@ class HID(Feature):
+@@ -62,18 +63,19 @@
def configure(self, build, conf):
if not self.enabled(build):
return
@@ -43,7 +43,7 @@ Last-Update: 2016-01-25
# Optionally add libpthread and librt. Some distros need this.
conf.CheckLib(['pthread', 'libpthread'])
-@@ -83,30 +85,38 @@ class HID(Feature):
+@@ -83,30 +85,38 @@
build.env.Append(CCFLAGS='-pthread')
build.env.Append(LINKFLAGS='-pthread')
@@ -98,1262 +98,8 @@ Last-Update: 2016-01-25
return sources
---- /dev/null
-+++ mixxx-2.0.0~dfsg/build/features.py.orig
-@@ -0,0 +1,1251 @@
-+# -*- coding: utf-8 -*-
-+
-+import os
-+import util
-+from mixxx import Feature
-+import SCons.Script as SCons
-+import depends
-+
-+
-+class HSS1394(Feature):
-+ def description(self):
-+ return "HSS1394 MIDI device support"
-+
-+ def enabled(self, build):
-+ if build.platform_is_windows or build.platform_is_osx:
-+ build.flags['hss1394'] = util.get_flags(build.env, 'hss1394', 1)
-+ else:
-+ build.flags['hss1394'] = util.get_flags(build.env, 'hss1394', 0)
-+ if int(build.flags['hss1394']):
-+ return True
-+ return False
-+
-+ def add_options(self, build, vars):
-+ if build.platform_is_windows or build.platform_is_osx:
-+ vars.Add('hss1394',
-+ 'Set to 1 to enable HSS1394 MIDI device support.', 1)
-+
-+ def configure(self, build, conf):
-+ if not self.enabled(build):
-+ return
-+ if build.platform_is_windows or build.platform_is_osx:
-+# if not conf.CheckHeader('HSS1394/HSS1394.h'): # WTF this gives tons of cmath errors on MSVC
-+# raise Exception('Did not find HSS1394 development headers')
-+ if not conf.CheckLib(['libhss1394', 'hss1394']):
-+ raise Exception('Did not find HSS1394 development library')
-+
-+ build.env.Append(CPPDEFINES='__HSS1394__')
-+
-+ if build.platform_is_windows and build.static_dependencies:
-+ conf.CheckLib('user32')
-+
-+ def sources(self, build):
-+ return ['controllers/midi/hss1394controller.cpp',
-+ 'controllers/midi/hss1394enumerator.cpp']
-+
-+
-+class HID(Feature):
-+ HIDAPI_INTERNAL_PATH = '#lib/hidapi-0.8.0-rc1'
-+
-+ def description(self):
-+ return "HID controller support"
-+
-+ def enabled(self, build):
-+ build.flags['hid'] = util.get_flags(build.env, 'hid', 1)
-+ if int(build.flags['hid']):
-+ return True
-+ return False
-+
-+ def add_options(self, build, vars):
-+ vars.Add('hid', 'Set to 1 to enable HID controller support.', 1)
-+
-+ def configure(self, build, conf):
-+ if not self.enabled(build):
-+ return
-+ # TODO(XXX) allow external hidapi install, but for now we just use our
-+ # internal one.
-+ build.env.Append(
-+ CPPPATH=[os.path.join(self.HIDAPI_INTERNAL_PATH, 'hidapi')])
-+
-+ if build.platform_is_linux:
-+ build.env.ParseConfig(
-+ 'pkg-config libusb-1.0 --silence-errors --cflags --libs')
-+ if (not conf.CheckLib(['libusb-1.0', 'usb-1.0']) or
-+ not conf.CheckHeader('libusb-1.0/libusb.h')):
-+ raise Exception(
-+ 'Did not find the libusb 1.0 development library or its header file')
-+
-+ # Optionally add libpthread and librt. Some distros need this.
-+ conf.CheckLib(['pthread', 'libpthread'])
-+ conf.CheckLib(['rt', 'librt'])
-+
-+ # -pthread tells GCC to do the right thing regardless of system
-+ build.env.Append(CCFLAGS='-pthread')
-+ build.env.Append(LINKFLAGS='-pthread')
-+
-+ elif build.platform_is_windows and not conf.CheckLib(['setupapi', 'libsetupapi']):
-+ raise Exception('Did not find the setupapi library, exiting.')
-+ elif build.platform_is_osx:
-+ build.env.AppendUnique(FRAMEWORKS=['IOKit', 'CoreFoundation'])
-+
-+ build.env.Append(CPPDEFINES='__HID__')
-+
-+ def sources(self, build):
-+ sources = ['controllers/hid/hidcontroller.cpp',
-+ 'controllers/hid/hidenumerator.cpp',
-+ 'controllers/hid/hidcontrollerpresetfilehandler.cpp']
-+
-+ if build.platform_is_windows:
-+ # Requires setupapi.lib which is included by the above check for
-+ # setupapi.
-+ sources.append(
-+ os.path.join(self.HIDAPI_INTERNAL_PATH, "windows/hid.c"))
-+ elif build.platform_is_linux:
-+ # hidapi compiles the libusb implementation by default on Linux
-+ sources.append(
-+ os.path.join(self.HIDAPI_INTERNAL_PATH, 'libusb/hid.c'))
-+ elif build.platform_is_osx:
-+ sources.append(
-+ os.path.join(self.HIDAPI_INTERNAL_PATH, 'mac/hid.c'))
-+ return sources
-+
-+
-+class Bulk(Feature):
-+ def description(self):
-+ return "USB Bulk controller support"
-+
-+ def enabled(self, build):
-+ # For now only make Bulk default on Linux only. Turn on for all
-+ # platforms after the 1.11.0 release.
-+ is_default = 1 if build.platform_is_linux else 0
-+ build.flags['bulk'] = util.get_flags(build.env, 'bulk', is_default)
-+ if int(build.flags['bulk']):
-+ return True
-+ return False
-+
-+ def add_options(self, build, vars):
-+ is_default = 1 if build.platform_is_linux else 0
-+ vars.Add('bulk',
-+ 'Set to 1 to enable USB Bulk controller support.', is_default)
-+
-+ def configure(self, build, conf):
-+ if not self.enabled(build):
-+ return
-+
-+ build.env.ParseConfig(
-+ 'pkg-config libusb-1.0 --silence-errors --cflags --libs')
-+ if (not conf.CheckLib(['libusb-1.0', 'usb-1.0']) or
-+ not conf.CheckHeader('libusb-1.0/libusb.h')):
-+ raise Exception(
-+ 'Did not find the libusb 1.0 development library or its header file, exiting!')
-+
-+ build.env.Append(CPPDEFINES='__BULK__')
-+
-+ def sources(self, build):
-+ sources = ['controllers/bulk/bulkcontroller.cpp',
-+ 'controllers/bulk/bulkenumerator.cpp']
-+ if not int(build.flags['hid']):
-+ sources.append(
-+ 'controllers/hid/hidcontrollerpresetfilehandler.cpp')
-+ return sources
-+
-+
-+class Mad(Feature):
-+ def description(self):
-+ return "MAD MP3 Decoder"
-+
-+ def default(self, build):
-+ return 0 if build.platform_is_osx else 1
-+
-+ def enabled(self, build):
-+ build.flags['mad'] = util.get_flags(build.env, 'mad',
-+ self.default(build))
-+ if int(build.flags['mad']):
-+ return True
-+ return False
-+
-+ def add_options(self, build, vars):
-+ vars.Add('mad', 'Set to 1 to enable MAD MP3 decoder support.',
-+ self.default(build))
-+
-+ def configure(self, build, conf):
-+ if not self.enabled(build):
-+ return
-+ if not conf.CheckLib(['libmad', 'mad']):
-+ raise Exception(
-+ 'Did not find libmad.a, libmad.lib, or the libmad development header files - exiting!')
-+ if not conf.CheckLib(['libid3tag', 'id3tag', 'libid3tag-release']):
-+ raise Exception(
-+ 'Did not find libid3tag.a, libid3tag.lib, or the libid3tag development header files - exiting!')
-+ build.env.Append(CPPDEFINES='__MAD__')
-+
-+ def sources(self, build):
-+ return ['soundsourcemp3.cpp']
-+
-+
-+class CoreAudio(Feature):
-+
-+ def description(self):
-+ return "CoreAudio MP3/AAC Decoder"
-+
-+ def default(self, build):
-+ return 1 if build.platform_is_osx else 0
-+
-+ def enabled(self, build):
-+ build.flags['coreaudio'] = util.get_flags(
-+ build.env, 'coreaudio', self.default(build))
-+ if int(build.flags['coreaudio']):
-+ return True
-+ return False
-+
-+ def add_options(self, build, vars):
-+ vars.Add(
-+ 'coreaudio', 'Set to 1 to enable CoreAudio MP3/AAC decoder support.',
-+ self.default(build))
-+
-+ def configure(self, build, conf):
-+ if not self.enabled(build):
-+ return
-+
-+ if not build.platform_is_osx:
-+ raise Exception('CoreAudio is only supported on OS X!')
-+
-+ build.env.Append(CPPPATH='#lib/apple/')
-+ build.env.AppendUnique(FRAMEWORKS=['AudioToolbox', 'CoreFoundation'])
-+ build.env.Append(CPPDEFINES='__COREAUDIO__')
-+
-+ def sources(self, build):
-+ return ['soundsourcecoreaudio.cpp',
-+ '#lib/apple/CAStreamBasicDescription.cpp']
-+
-+
-+class MediaFoundation(Feature):
-+ FLAG = 'mediafoundation'
-+
-+ def description(self):
-+ return "Media Foundation AAC Decoder Plugin"
-+
-+ def enabled(self, build):
-+ build.flags[self.FLAG] = util.get_flags(build.env, self.FLAG, 0)
-+ if int(build.flags[self.FLAG]):
-+ return True
-+ return False
-+
-+ def add_options(self, build, vars):
-+ if build.platform_is_windows:
-+ vars.Add(
-+ self.FLAG, "Set to 1 to enable the Media Foundation AAC decoder plugin (Windows Vista with KB2117917 or Windows 7 required)", 0)
-+
-+ def configure(self, build, conf):
-+ if not self.enabled(build):
-+ return
-+ if not build.platform_is_windows:
-+ raise Exception("Media Foundation is only supported on Windows!")
-+ if not conf.CheckLib('Ole32'):
-+ raise Exception('Did not find Ole32.lib - exiting!')
-+ if not conf.CheckLib(['Mfuuid']):
-+ raise Exception('Did not find Mfuuid.lib - exiting!')
-+ if not conf.CheckLib(['Mfplat']):
-+ raise Exception('Did not find Mfplat.lib - exiting!')
-+ if not conf.CheckLib(['Mfreadwrite']): # Only available on Windows 7 and up, or properly updated Vista
-+ raise Exception('Did not find Mfreadwrite.lib - exiting!')
-+ build.env.Append(CPPDEFINES='__MEDIAFOUNDATION__')
-+
-+
-+class IPod(Feature):
-+ def description(self):
-+ return "NOT-WORKING iPod Support"
-+
-+ def enabled(self, build):
-+ build.flags['ipod'] = util.get_flags(build.env, 'ipod', 0)
-+ if int(build.flags['ipod']):
-+ return True
-+ return False
-+
-+ def add_options(self, build, vars):
-+ vars.Add('ipod', 'Set to 1 to enable iPod support through libgpod', 0)
-+
-+ def configure(self, build, conf):
-+ if not self.enabled(build):
-+ return
-+
-+ build.env.Append(CPPDEFINES='__IPOD__')
-+ if build.platform_is_windows:
-+ build.env.Append(LIBS='gpod')
-+ # You must check v-this-v directory out from
-+ # http://publicsvn.songbirdnest.com/vendor-
-+ # binaries/trunk/windows-i686-msvc8/libgpod/
-+ build.env.Append(
-+ LIBPATH='../../../windows-i686-msvc8/libgpod/release/lib')
-+ # Following building the following must be added to the dist folder in order for mixxx to run with ipod support on Windows
-+ # \windows-i686-msvc8\libgpod\release\lib\libgpod.dll
-+ # \windows-i686-msvc8\glib\release\bin\libgobject-2.0-0.dll
-+ # \windows-i686-msvc8\glib\release\bin\libglib-2.0-0.dll
-+ # \windows-i686-msvc8\libiconv\release\bin\iconv.dll
-+ # \windows-i686-msvc8\gettext\release\binintl.dll
-+ if build.platform_is_linux or build.platform_is_osx:
-+ # env.Append(LIBS = 'libgpod-1.0')
-+ # env.Append(LIBS = 'glib-2.0')
-+ build.env.ParseConfig(
-+ 'pkg-config libgpod-1.0 --silence-errors --cflags --libs')
-+ build.env.ParseConfig(
-+ 'pkg-config glib-2.0 --silence-errors --cflags --libs')
-+
-+ def sources(self, build):
-+ return ['wipodtracksmodel.cpp']
-+
-+
-+class VinylControl(Feature):
-+ def description(self):
-+ return "Vinyl Control"
-+
-+ def enabled(self, build):
-+ build.flags['vinylcontrol'] = util.get_flags(build.env,
-+ 'vinylcontrol', 0)
-+ # Existence of the macappstore option forces vinylcontrol off due to
-+ # licensing issues.
-+ if build.flags.has_key('macappstore') and int(build.flags['macappstore']):
-+ return False
-+ if int(build.flags['vinylcontrol']):
-+ return True
-+ return False
-+
-+ def add_options(self, build, vars):
-+ vars.Add('vinylcontrol', 'Set to 1 to enable vinyl control support', 1)
-+
-+ def configure(self, build, conf):
-+ if not self.enabled(build):
-+ return
-+ build.env.Append(CPPDEFINES='__VINYLCONTROL__')
-+ build.env.Append(CPPPATH='#lib/xwax')
-+ build.env.Append(CPPPATH='#lib/scratchlib')
-+
-+ def sources(self, build):
-+ sources = ['vinylcontrol/vinylcontrol.cpp',
-+ 'vinylcontrol/vinylcontrolxwax.cpp',
-+ 'dlgprefvinyl.cpp',
-+ 'vinylcontrol/vinylcontrolsignalwidget.cpp',
-+ 'vinylcontrol/vinylcontrolmanager.cpp',
-+ 'vinylcontrol/vinylcontrolprocessor.cpp',
-+ 'vinylcontrol/steadypitch.cpp',
-+ 'engine/vinylcontrolcontrol.cpp', ]
-+ if build.platform_is_windows:
-+ sources.append("#lib/xwax/timecoder_win32.cpp")
-+ sources.append("#lib/xwax/lut_win32.cpp")
-+ else:
-+ sources.append("#lib/xwax/timecoder.c")
-+ sources.append("#lib/xwax/lut.c")
-+
-+ return sources
-+
-+
-+class Vamp(Feature):
-+ INTERNAL_LINK = False
-+ INTERNAL_VAMP_PATH = '#lib/vamp-2.3'
-+
-+ def description(self):
-+ return "Vamp Analysers support"
-+
-+ def enabled(self, build):
-+ build.flags['vamp'] = util.get_flags(build.env, 'vamp', 1)
-+ if int(build.flags['vamp']):
-+ return True
-+ return False
-+
-+ def add_options(self, build, vars):
-+ vars.Add('vamp', 'Set to 1 to enable vamp analysers', 1)
-+
-+ def configure(self, build, conf):
-+ if not self.enabled(build):
-+ return
-+
-+ # If there is no system vamp-hostdk installed, then we'll directly link
-+ # the vamp-hostsdk.
-+ if not conf.CheckLib(['vamp-hostsdk']):
-+ # For header includes
-+ build.env.Append(CPPPATH=[self.INTERNAL_VAMP_PATH])
-+ self.INTERNAL_LINK = True
-+
-+ # Needed on Linux at least. Maybe needed elsewhere?
-+ if build.platform_is_linux:
-+ # Optionally link libdl and libX11. Required for some distros.
-+ conf.CheckLib(['dl', 'libdl'])
-+ conf.CheckLib(['X11', 'libX11'])
-+
-+ # FFTW3 support
-+ have_fftw3_h = conf.CheckHeader('fftw3.h')
-+ have_fftw3 = conf.CheckLib('fftw3', autoadd=False)
-+ if have_fftw3_h and have_fftw3 and build.platform_is_linux:
-+ build.env.Append(CPPDEFINES='HAVE_FFTW3')
-+ build.env.ParseConfig(
-+ 'pkg-config fftw3 --silence-errors --cflags --libs')
-+
-+ def sources(self, build):
-+ sources = ['vamp/vampanalyser.cpp',
-+ 'vamp/vamppluginloader.cpp',
-+ 'analyserbeats.cpp',
-+ 'dlgprefbeats.cpp']
-+ if self.INTERNAL_LINK:
-+ hostsdk_src_path = '%s/src/vamp-hostsdk' % self.INTERNAL_VAMP_PATH
-+ sources.extend(path % hostsdk_src_path for path in
-+ ['%s/PluginBufferingAdapter.cpp',
-+ '%s/PluginChannelAdapter.cpp',
-+ '%s/PluginHostAdapter.cpp',
-+ '%s/PluginInputDomainAdapter.cpp',
-+ '%s/PluginLoader.cpp',
-+ '%s/PluginSummarisingAdapter.cpp',
-+ '%s/PluginWrapper.cpp',
-+ '%s/RealTime.cpp'])
-+ return sources
-+
-+
-+class ModPlug(Feature):
-+ def description(self):
-+ return "Modplug module decoder plugin"
-+
-+ def enabled(self, build):
-+ build.flags['modplug'] = util.get_flags(build.env, 'modplug', 0)
-+ if int(build.flags['modplug']):
-+ return True
-+ return False
-+
-+ def add_options(self, build, vars):
-+ vars.Add('modplug',
-+ 'Set to 1 to enable libmodplug based module tracker support.', 0)
-+
-+ def configure(self, build, conf):
-+ if not self.enabled(build):
-+ return
-+
-+ build.env.Append(CPPDEFINES='__MODPLUG__')
-+
-+ have_modplug_h = conf.CheckHeader('libmodplug/modplug.h')
-+ have_modplug = conf.CheckLib(['modplug', 'libmodplug'], autoadd=True)
-+
-+ if not have_modplug_h:
-+ raise Exception('Could not find libmodplug development headers.')
-+
-+ if not have_modplug:
-+ raise Exception('Could not find libmodplug shared library.')
-+
-+ def sources(self, build):
-+ depends.Qt.uic(build)('dlgprefmodplugdlg.ui')
-+ return ['soundsourcemodplug.cpp', 'dlgprefmodplug.cpp']
-+
-+
-+class FAAD(Feature):
-+ def description(self):
-+ return "FAAD AAC audio file decoder plugin"
-+
-+ def enabled(self, build):
-+ build.flags['faad'] = util.get_flags(build.env, 'faad', 0)
-+ if int(build.flags['faad']):
-+ return True
-+ return False
-+
-+ def add_options(self, build, vars):
-+ vars.Add('faad',
-+ 'Set to 1 to enable building the FAAD AAC decoder plugin.', 0)
-+
-+ def configure(self, build, conf):
-+ if not self.enabled(build):
-+ return
-+
-+ have_mp4v2_h = conf.CheckHeader('mp4v2/mp4v2.h')
-+ have_mp4v2 = conf.CheckLib(['mp4v2', 'libmp4v2'], autoadd=False)
-+ have_mp4_h = conf.CheckHeader('mp4.h')
-+ have_mp4 = conf.CheckLib('mp4', autoadd=False)
-+
-+ # Either mp4 or mp4v2 works
-+ have_mp4 = (have_mp4v2_h or have_mp4_h) and (have_mp4v2 or have_mp4)
-+
-+ if not have_mp4:
-+ raise Exception(
-+ 'Could not find libmp4, libmp4v2 or the libmp4v2 development headers.')
-+
-+ have_faad = conf.CheckLib(['faad', 'libfaad'], autoadd=False)
-+
-+ if not have_faad:
-+ raise Exception(
-+ 'Could not find libfaad or the libfaad development headers.')
-+
-+
-+class WavPack(Feature):
-+ def description(self):
-+ return "WavPack audio file support plugin"
-+
-+ def enabled(self, build):
-+ build.flags['wv'] = util.get_flags(build.env, 'wv', 0)
-+ if int(build.flags['wv']):
-+ return True
-+ return False
-+
-+ def add_options(self, build, vars):
-+ vars.Add('wv',
-+ 'Set to 1 to enable building the WavPack support plugin.', 0)
-+
-+ def configure(self, build, conf):
-+ if not self.enabled(build):
-+ return
-+ have_wv = conf.CheckLib(['wavpack', 'wv'], autoadd=True)
-+ if not have_wv:
-+ raise Exception(
-+ 'Could not find libwavpack, libwv or its development headers.')
-+
-+
-+class ColorDiagnostics(Feature):
-+ def description(self):
-+ return "Color Diagnostics"
-+
-+ def enabled(self, build):
-+ build.flags['color'] = util.get_flags(build.env, 'color', 0)
-+ return bool(int(build.flags['color']))
-+
-+ def add_options(self, build, vars):
-+ vars.Add('color', "Set to 1 to enable Clang color diagnostics.", 0)
-+
-+ def configure(self, build, conf):
-+ if not self.enabled(build):
-+ return
-+
-+ if not build.compiler_is_clang:
-+ raise Exception('Color diagnostics are only available using clang.')
-+
-+ build.env.Append(CCFLAGS='-fcolor-diagnostics')
-+
-+
-+class AddressSanitizer(Feature):
-+ def description(self):
-+ return "Address Sanitizer"
-+
-+ def enabled(self, build):
-+ build.flags['asan'] = util.get_flags(build.env, 'asan', 0)
-+ return bool(int(build.flags['asan']))
-+
-+ def add_options(self, build, vars):
-+ vars.Add("asan", "Set to 1 to enable linking against the Clang AddressSanitizer.", 0)
-+
-+ def configure(self, build, conf):
-+ if not self.enabled(build):
-+ return
-+
-+ if not build.compiler_is_clang:
-+ raise Exception('Address Sanitizer is only available using clang.')
-+
-+ # -fno-omit-frame-pointer gets much better stack traces in asan output.
-+ build.env.Append(CCFLAGS="-fsanitize=address -fno-omit-frame-pointer")
-+ build.env.Append(LINKFLAGS="-fsanitize=address -fno-omit-frame-pointer")
-+
-+
-+class PerfTools(Feature):
-+ def description(self):
-+ return "Google PerfTools"
-+
-+ def enabled(self, build):
-+ build.flags['perftools'] = util.get_flags(build.env, 'perftools', 0)
-+ build.flags['perftools_profiler'] = util.get_flags(
-+ build.env, 'perftools_profiler', 0)
-+ if int(build.flags['perftools']):
-+ return True
-+ return False
-+
-+ def add_options(self, build, vars):
-+ vars.Add(
-+ "perftools", "Set to 1 to enable linking against libtcmalloc and Google's performance tools. You must install libtcmalloc from google-perftools to use this option.", 0)
-+ vars.Add("perftools_profiler", "Set to 1 to enable linking against libprofiler, Google's CPU profiler. You must install libprofiler from google-perftools to use this option.", 0)
-+
-+ def configure(self, build, conf):
-+ if not self.enabled(build):
-+ return
-+
-+ build.env.Append(LIBS="tcmalloc")
-+
-+ if int(build.flags['perftools_profiler']):
-+ build.env.Append(LIBS="profiler")
-+
-+
-+class AsmLib(Feature):
-+ def description(self):
-+ return "Agner Fog\'s ASMLIB"
-+
-+ def enabled(self, build):
-+ if build.build_is_debug:
-+ return False
-+ build.flags['asmlib'] = util.get_flags(build.env, 'asmlib', 0)
-+ if int(build.flags['asmlib']):
-+ return True
-+ return False
-+
-+ def add_options(self, build, vars):
-+ vars.Add(
-+ 'asmlib', 'Set to 1 to enable linking against Agner Fog\'s hand-optimized asmlib, found at http://www.agner.org/optimize/', 0)
-+
-+ def configure(self, build, conf):
-+ if build.build_is_debug:
-+ self.status = "Disabled (due to debug build)"
-+ return
-+ if not self.enabled(build):
-+ return
-+
-+ build.env.Append(LIBPATH='#/../asmlib')
-+ if build.platform_is_linux:
-+ #Use ASMLIB's functions instead of the compiler's
-+ build.env.Append(CCFLAGS='-fno-builtin')
-+ build.env.Prepend(LIBS='":libaelf%so.a"' % build.bitwidth)
-+ elif build.platform_is_osx:
-+ #Use ASMLIB's functions instead of the compiler's
-+ build.env.Append(CCFLAGS='-fno-builtin')
-+ build.env.Prepend(LIBS='":libamac%so.a"' % build.bitwidth)
-+ elif build.platform_is_windows:
-+ #Use ASMLIB's functions instead of the compiler's
-+ build.env.Append(CCFLAGS='/Oi-')
-+ build.env.Prepend(LIBS='libacof%so' % build.bitwidth)
-+
-+
-+class BuildTime(Feature):
-+ def description(self):
-+ return "Use __DATE__ and __TIME__"
-+
-+ def enabled(self, build):
-+ build.flags['buildtime'] = util.get_flags(build.env, 'buildtime', 1)
-+ if int(build.flags['buildtime']):
-+ return True
-+ return False
-+
-+ def add_options(self, build, vars):
-+ vars.Add(
-+ 'buildtime', 'Set to 0 to disable build time (__DATE__ and __TIME__) usage.', 1)
-+
-+ def configure(self, build, conf):
-+ # Distributions like openSUSE use tools (e. g. build-compare) to detect
-+ # whether a built binary differs from a former build to avoid unneeded
-+ # publishing of packages.
-+ # If __DATE__ and __TIME__ are used the built binary differs always but
-+ # the tools cannot detect the root and publish a new package although
-+ # the only change is caused by __DATE__ and __TIME__.
-+ # So let distributions disable __DATE__ and __TIME__ via buildtime=0.
-+ if not self.enabled(build):
-+ build.env.Append(CPPDEFINES='DISABLE_BUILDTIME')
-+
-+
-+class QDebug(Feature):
-+ def description(self):
-+ return "Debugging message output"
-+
-+ def enabled(self, build):
-+ build.flags['qdebug'] = util.get_flags(build.env, 'qdebug', 0)
-+ if build.platform_is_windows:
-+ if build.build_is_debug:
-+ # Turn general debugging flag on too if debug build is specified
-+ build.flags['qdebug'] = 1
-+ if int(build.flags['qdebug']):
-+ return True
-+ return False
-+
-+ def add_options(self, build, vars):
-+ vars.Add(
-+ 'qdebug', 'Set to 1 to enable verbose console debug output.', 1)
-+
-+ def configure(self, build, conf):
-+ if not self.enabled(build):
-+ build.env.Append(CPPDEFINES='QT_NO_DEBUG_OUTPUT')
-+
-+
-+class Verbose(Feature):
-+ def description(self):
-+ return "Verbose compilation output"
-+
-+ def enabled(self, build):
-+ build.flags['verbose'] = util.get_flags(build.env, 'verbose', 1)
-+ if int(build.flags['verbose']):
-+ return True
-+ return False
-+
-+ def add_options(self, build, vars):
-+ vars.Add('verbose', 'Compile files verbosely.', 1)
-+
-+ def configure(self, build, conf):
-+ if not self.enabled(build):
-+ build.env['CCCOMSTR'] = '[CC] $SOURCE'
-+ build.env['CXXCOMSTR'] = '[CXX] $SOURCE'
-+ build.env['ASCOMSTR'] = '[AS] $SOURCE'
-+ build.env['ARCOMSTR'] = '[AR] $TARGET'
-+ build.env['RANLIBCOMSTR'] = '[RANLIB] $TARGET'
-+ build.env['LDMODULECOMSTR'] = '[LD] $TARGET'
-+ build.env['LINKCOMSTR'] = '[LD] $TARGET'
-+
-+ build.env['QT4_LUPDATECOMSTR'] = '[LUPDATE] $SOURCE'
-+ build.env['QT4_LRELEASECOMSTR'] = '[LRELEASE] $SOURCE'
-+ build.env['QT4_QRCCOMSTR'] = '[QRC] $SOURCE'
-+ build.env['QT4_UICCOMSTR'] = '[UIC4] $SOURCE'
-+ build.env['QT4_MOCFROMHCOMSTR'] = '[MOC] $SOURCE'
-+ build.env['QT4_MOCFROMCXXCOMSTR'] = '[MOC] $SOURCE'
-+
-+ build.env['QT5_LUPDATECOMSTR'] = '[LUPDATE] $SOURCE'
-+ build.env['QT5_LRELEASECOMSTR'] = '[LRELEASE] $SOURCE'
-+ build.env['QT5_QRCCOMSTR'] = '[QRC] $SOURCE'
-+ build.env['QT5_UICCOMSTR'] = '[UIC5] $SOURCE'
-+ build.env['QT5_MOCCOMSTR'] = '[MOC] $SOURCE'
-+
-+
-+class Profiling(Feature):
-+ def description(self):
-+ return "gprof/Saturn profiling support"
-+
-+ def enabled(self, build):
-+ build.flags['profiling'] = util.get_flags(build.env, 'profiling', 0)
-+ if int(build.flags['profiling']):
-+ if build.platform_is_linux or build.platform_is_osx or build.platform_is_bsd:
-+ return True
-+ return False
-+
-+ def add_options(self, build, vars):
-+ if not build.platform_is_windows:
-+ vars.Add('profiling',
-+ '(DEVELOPER) Set to 1 to enable profiling using gprof (Linux) or Saturn (OS X)', 0)
-+
-+ def configure(self, build, conf):
-+ if not self.enabled(build):
-+ return
-+ if build.platform_is_linux or build.platform_is_bsd:
-+ build.env.Append(CCFLAGS='-pg')
-+ build.env.Append(LINKFLAGS='-pg')
-+ elif build.platform_is_osx:
-+ build.env.Append(CCFLAGS='-finstrument-functions')
-+ build.env.Append(LINKFLAGS='-lSaturn')
-+
-+
-+class TestSuite(Feature):
-+ def description(self):
-+ return "Mixxx Test Suite"
-+
-+ def enabled(self, build):
-+ build.flags['test'] = util.get_flags(build.env, 'test', 0) or \
-+ 'test' in SCons.BUILD_TARGETS
-+ if int(build.flags['test']):
-+ return True
-+ return False
-+
-+ def add_options(self, build, vars):
-+ vars.Add('test', 'Set to 1 to build Mixxx test fixtures.', 0)
-+
-+ def configure(self, build, conf):
-+ if not self.enabled(build):
-+ return
-+
-+ def sources(self, build):
-+ # Build the gtest library, but don't return any sources.
-+
-+ # Clone our main environment so we don't change any settings in the
-+ # Mixxx environment
-+ test_env = build.env.Clone()
-+
-+ # -pthread tells GCC to do the right thing regardless of system
-+ if build.toolchain_is_gnu:
-+ test_env.Append(CCFLAGS='-pthread')
-+ test_env.Append(LINKFLAGS='-pthread')
-+
-+ test_env.Append(CPPPATH="#lib/gtest-1.7.0/include")
-+ gtest_dir = test_env.Dir("#lib/gtest-1.7.0")
-+ # gtest_dir.addRepository(build.env.Dir('#lib/gtest-1.5.0'))
-+ # build.env['EXE_OUTPUT'] = '#/lib/gtest-1.3.0/bin' # example,
-+ # optional
-+ test_env['LIB_OUTPUT'] = '#/lib/gtest-1.7.0/lib'
-+
-+ env = test_env
-+ SCons.Export('env')
-+ env.SConscript(env.File('SConscript', gtest_dir))
-+
-+ # build and configure gmock
-+ test_env.Append(CPPPATH="#lib/gmock-1.7.0/include")
-+ gmock_dir = test_env.Dir("#lib/gmock-1.7.0")
-+ # gmock_dir.addRepository(build.env.Dir('#lib/gmock-1.5.0'))
-+ test_env['LIB_OUTPUT'] = '#/lib/gmock-1.7.0/lib'
-+
-+ env.SConscript(env.File('SConscript', gmock_dir))
-+
-+ return []
-+
-+
-+class Shoutcast(Feature):
-+ def description(self):
-+ return "Shoutcast Broadcasting (OGG/MP3)"
-+
-+ def enabled(self, build):
-+ build.flags['shoutcast'] = util.get_flags(build.env, 'shoutcast', 1)
-+ if int(build.flags['shoutcast']):
-+ return True
-+ return False
-+
-+ def add_options(self, build, vars):
-+ vars.Add('shoutcast', 'Set to 1 to enable shoutcast support', 1)
-+
-+ def configure(self, build, conf):
-+ if not self.enabled(build):
-+ return
-+
-+ libshout_found = conf.CheckLib(['libshout', 'shout'])
-+ build.env.Append(CPPDEFINES='__SHOUTCAST__')
-+
-+ if not libshout_found:
-+ raise Exception('Could not find libshout or its development headers. Please install it or compile Mixxx without Shoutcast support using the shoutcast=0 flag.')
-+
-+ if build.platform_is_windows and build.static_dependencies:
-+ conf.CheckLib('winmm')
-+ conf.CheckLib('ws2_32')
-+
-+ def sources(self, build):
-+ depends.Qt.uic(build)('dlgprefshoutcastdlg.ui')
-+ return ['dlgprefshoutcast.cpp',
-+ 'shoutcast/shoutcastmanager.cpp',
-+ 'engine/sidechain/engineshoutcast.cpp']
-+
-+
-+class Opus(Feature):
-+ def description(self):
-+ return "Opus (RFC 6716) support"
-+
-+ def enabled(self, build):
-+ # Default Opus to on but only throw an error if it was explicitly
-+ # requested.
-+ if 'opus' in build.flags:
-+ return int(build.flags['opus']) > 0
-+ build.flags['opus'] = util.get_flags(build.env, 'opus', 1)
-+ if int(build.flags['opus']):
-+ return True
-+ return False
-+
-+ def add_options(self, build, vars):
-+ vars.Add('opus', 'Set to 1 to enable Opus (RFC 6716) support \
-+ (supported are Opus 1.0 and above and Opusfile 0.2 and above)', 1)
-+
-+ def configure(self, build, conf):
-+ if not self.enabled(build):
-+ return
-+
-+ # Only block the configure if opus was explicitly requested.
-+ explicit = 'opus' in SCons.ARGUMENTS
-+
-+ # Support for Opus (RFC 6716)
-+ # More info http://http://www.opus-codec.org/
-+ if not conf.CheckLib(['opus', 'libopus']):
-+ if explicit:
-+ raise Exception('Could not find libopus.')
-+ else:
-+ build.flags['opus'] = 0
-+ return
-+ if not conf.CheckLib(['opusfile', 'libopusfile']):
-+ if explicit:
-+ raise Exception('Could not find libopusfile.')
-+ else:
-+ build.flags['opus'] = 0
-+ return
-+
-+ build.env.Append(CPPDEFINES='__OPUS__')
-+
-+ if build.platform_is_linux or build.platform_is_bsd:
-+ build.env.ParseConfig('pkg-config opusfile opus --silence-errors --cflags --libs')
-+
-+ def sources(self, build):
-+ return ['soundsourceopus.cpp']
-+
-+
-+class FFMPEG(Feature):
-+ def description(self):
-+ return "FFMPEG/LibAV support"
-+
-+ def enabled(self, build):
-+ build.flags['ffmpeg'] = util.get_flags(build.env, 'ffmpeg', 0)
-+ if int(build.flags['ffmpeg']):
-+ return True
-+ return False
-+
-+ def add_options(self, build, vars):
-+ vars.Add('ffmpeg', 'Set to 1 to enable FFMPEG/Libav support \
-+ (supported FFMPEG 0.11-2.0 and Libav 0.8.x-9.x)', 0)
-+
-+ def configure(self, build, conf):
-+ if not self.enabled(build):
-+ return
-+
-+ # Supported version are FFMPEG 0.11-2.0 and Libav 0.8.x-9.x
-+ # FFMPEG is multimedia library that can be found http://ffmpeg.org/
-+ # Libav is fork of FFMPEG that is used mainly in Debian and Ubuntu
-+ # that can be found http://libav.org
-+ if build.platform_is_linux or build.platform_is_osx \
-+ or build.platform_is_bsd:
-+ # Check for libavcodec, libavformat
-+ # I just randomly picked version numbers lower than mine for this
-+ if not conf.CheckForPKG('libavcodec', '53.35.0'):
-+ raise Exception('Missing libavcodec or it\'s too old! It can'
-+ 'be separated from main package so check your'
-+ 'operating system packages.')
-+ if not conf.CheckForPKG('libavformat', '53.21.0'):
-+ raise Exception('Missing libavformat or it\'s too old!'
-+ 'It can be separated from main package so'
-+ 'check your operating system packages.')
-+
-+ # Needed to build new FFMPEG
-+ build.env.Append(CCFLAGS='-D__STDC_CONSTANT_MACROS')
-+ build.env.Append(CCFLAGS='-D__STDC_LIMIT_MACROS')
-+ build.env.Append(CCFLAGS='-D__STDC_FORMAT_MACROS')
-+
-+ # Grabs the libs and cflags for ffmpeg
-+ build.env.ParseConfig('pkg-config libavcodec --silence-errors \
-+ --cflags --libs')
-+ build.env.ParseConfig('pkg-config libavformat --silence-errors \
-+ --cflags --libs')
-+ build.env.ParseConfig('pkg-config libavutil --silence-errors \
-+ --cflags --libs')
-+
-+ # What are libavresample and libswresample??
-+ # Libav forked from FFMPEG in version 0.10 and there wasn't any
-+ # separated library for resampling audio. There we resample API
-+ # (actually two and they are both a big mess). API is now marked as
-+ # depricated but both are still available in current version
-+ # FFMPEG up to version 1.2 or Libav up to version 9
-+ # In some point developers FFMPEG decided to make libswresample
-+ # (Software Resample). Libav people also noticed API problem and
-+ # created libavresample. After that libavresample were imported in
-+ # FFMPEG and it's API/ABI compatible with LibAV.
-+ # If you have FFMPEG version 0.10 or Libav version 0.8.x your
-+ # resampling is done through inner API
-+ # FFMPEG 0.11 Have libswresample but ain't libavresample
-+ # FFMPEG 1.0 and above have libswresample and libavresample
-+ # Libav after 0.8.x and between 9 have some libavresample
-+ # Libav 9 have libavresample have libavresample
-+ # Most Linux systems have separated packages for libswresample/
-+ # libavresample so you can have them installed or not in you
-+ # system most use libavresample.
-+ # Ubuntu/Debian only have Libav 0.8.x available (There is PPA for
-+ # libav 9)
-+ # Fedora uses newest FFMPEG 1.x/2.x (With compability libs)
-+ # openSUSE uses newest FFMPEG 1.x/2.x (With compability libs)
-+ # Mac OS X does have FFMPEG available (with libswresample) from
-+ # macports or homebrew
-+ # Microsoft Windows can download FFMPEG or Libav resample libraries
-+
-+ if conf.CheckForPKG('libavresample', '0.0.3'):
-+ build.env.ParseConfig('pkg-config libavresample \
-+ --silence-errors --cflags --libs')
-+ build.env.Append(CPPDEFINES='__FFMPEGFILE__')
-+ build.env.Append(CPPDEFINES='__LIBAVRESAMPLE__')
-+ self.status = "Enabled -- with libavresample"
-+ elif conf.CheckForPKG('libswresample', '0.0.1'):
-+ build.env.ParseConfig('pkg-config libswresample \
-+ --silence-errors --cflags --libs')
-+ build.env.Append(CPPDEFINES='__FFMPEGFILE__')
-+ build.env.Append(CPPDEFINES='__LIBSWRESAMPLE__')
-+ self.status = "Enabled -- with libswresample"
-+ else:
-+ build.env.Append(CPPDEFINES='__FFMPEGFILE__')
-+ build.env.Append(CPPDEFINES='__FFMPEGOLDAPI__')
-+ self.status = "Enabled -- with old resample API"
-+
-+ else:
-+ # aptitude install libavcodec-dev libavformat-dev liba52-0.7.4-dev
-+ # libdts-dev
-+ # Append some stuff to CFLAGS in Windows also
-+ build.env.Append(CCFLAGS='-D__STDC_CONSTANT_MACROS')
-+ build.env.Append(CCFLAGS='-D__STDC_LIMIT_MACROS')
-+ build.env.Append(CCFLAGS='-D__STDC_FORMAT_MACROS')
-+
-+ build.env.Append(LIBS='avcodec')
-+ build.env.Append(LIBS='avformat')
-+ build.env.Append(LIBS='avutil')
-+ build.env.Append(LIBS='z')
-+ build.env.Append(LIBS='swresample')
-+ # build.env.Append(LIBS = 'a52')
-+ # build.env.Append(LIBS = 'dts')
-+ build.env.Append(LIBS='gsm')
-+ # build.env.Append(LIBS = 'dc1394_control')
-+ # build.env.Append(LIBS = 'dl')
-+ build.env.Append(LIBS='vorbisenc')
-+ # build.env.Append(LIBS = 'raw1394')
-+ build.env.Append(LIBS='vorbis')
-+ build.env.Append(LIBS='m')
-+ build.env.Append(LIBS='ogg')
-+ build.env.Append(CPPDEFINES='__FFMPEGFILE__')
-+
-+ # Add new path for ffmpeg header files.
-+ # Non-crosscompiled builds need this too, don't they?
-+ if build.crosscompile and build.platform_is_windows \
-+ and build.toolchain_is_gnu:
-+ build.env.Append(CPPPATH=os.path.join(build.crosscompile_root,
-+ 'include', 'ffmpeg'))
-+
-+ def sources(self, build):
-+ return ['soundsourceffmpeg.cpp',
-+ 'encoder/encoderffmpegresample.cpp',
-+ 'encoder/encoderffmpegcore.cpp',
-+ 'encoder/encoderffmpegmp3.cpp',
-+ 'encoder/encoderffmpegvorbis.cpp']
-+
-+
-+class Optimize(Feature):
-+ LEVEL_OFF = 'off'
-+ LEVEL_PORTABLE = 'portable'
-+ LEVEL_NATIVE = 'native'
-+ LEVEL_LEGACY = 'legacy'
-+
-+ LEVEL_DEFAULT = LEVEL_PORTABLE
-+
-+ def description(self):
-+ return "Optimization and Tuning"
-+
-+ @staticmethod
-+ def get_optimization_level(build):
-+ optimize_level = build.env.get('optimize', None)
-+ if optimize_level is None:
-+ optimize_level = SCons.ARGUMENTS.get('optimize',
-+ Optimize.LEVEL_DEFAULT)
-+
-+ try:
-+ optimize_integer = int(optimize_level)
-+ if optimize_integer == 0:
-+ optimize_level = Optimize.LEVEL_OFF
-+ elif optimize_integer == 1:
-+ # Level 1 was a legacy (compiler optimizations only) build.
-+ optimize_level = Optimize.LEVEL_LEGACY
-+ elif optimize_integer in xrange(2, 10):
-+ # Levels 2 through 9 map to portable.
-+ optimize_level = Optimize.LEVEL_PORTABLE
-+ except:
-+ pass
-+
-+ # Support common aliases for off.
-+ if optimize_level in ('none', 'disable', 'disabled'):
-+ optimize_level = Optimize.LEVEL_OFF
-+
-+ if optimize_level not in (Optimize.LEVEL_OFF, Optimize.LEVEL_PORTABLE,
-+ Optimize.LEVEL_NATIVE, Optimize.LEVEL_LEGACY):
-+ raise Exception("optimize={} is not supported. "
-+ "Use portable, native, legacy or off"
-+ .format(optimize_level))
-+ return optimize_level
-+
-+ def enabled(self, build):
-+ build.flags['optimize'] = Optimize.get_optimization_level(build)
-+ return build.flags['optimize'] != Optimize.LEVEL_OFF
-+
-+ def add_options(self, build, vars):
-+ vars.Add(
-+ 'optimize', 'Set to:\n' \
-+ ' portable: sse2 CPU (>= Pentium 4)\n' \
-+ ' native: optimized for the CPU of this system\n' \
-+ ' legacy: pure i386 code' \
-+ ' off: no optimization' \
-+ , Optimize.LEVEL_DEFAULT)
-+
-+ def configure(self, build, conf):
-+ if not self.enabled(build):
-+ return
-+
-+ optimize_level = build.flags['optimize']
-+
-+ if optimize_level == Optimize.LEVEL_OFF:
-+ self.status = "off: no optimization"
-+ return
-+
-+ if build.toolchain_is_msvs:
-+ # /GL : http://msdn.microsoft.com/en-us/library/0zza0de8.aspx
-+ # !!! /GL is incompatible with /ZI, which is set by mscvdebug
-+ build.env.Append(CCFLAGS='/GL')
-+
-+ # Use the fastest floating point math library
-+ # http://msdn.microsoft.com/en-us/library/e7s85ffb.aspx
-+ # http://msdn.microsoft.com/en-us/library/ms235601.aspx
-+ build.env.Append(CCFLAGS='/fp:fast')
-+
-+ # Do link-time code generation (and don't show a progress indicator
-+ # -- this relies on ANSI control characters and tends to overwhelm
-+ # Jenkins logs) Should we turn on PGO ?
-+ # http://msdn.microsoft.com/en-us/library/xbf3tbeh.aspx
-+ build.env.Append(LINKFLAGS='/LTCG:NOSTATUS')
-+
-+ # Suggested for unused code removal
-+ # http://msdn.microsoft.com/en-us/library/ms235601.aspx
-+ # http://msdn.microsoft.com/en-us/library/xsa71f43.aspx
-+ # http://msdn.microsoft.com/en-us/library/bxwfs976.aspx
-+ build.env.Append(CCFLAGS='/Gy')
-+ build.env.Append(LINKFLAGS='/OPT:REF')
-+ build.env.Append(LINKFLAGS='/OPT:ICF')
-+
-+ # Don't worry about aligning code on 4KB boundaries
-+ # build.env.Append(LINKFLAGS = '/OPT:NOWIN98')
-+ # ALBERT: NOWIN98 is not supported in MSVC 2010.
-+
-+ # http://msdn.microsoft.com/en-us/library/59a3b321.aspx
-+ # In general, you should pick /O2 over /Ox
-+ build.env.Append(CCFLAGS='/O2')
-+
-+ if optimize_level == Optimize.LEVEL_PORTABLE:
-+ # portable-binary: sse2 CPU (>= Pentium 4)
-+ self.status = "portable: sse2 CPU (>= Pentium 4)"
-+ # SSE and SSE2 are core instructions on x64
-+ # and consequently raise a warning message from compiler with this flag on x64.
-+ if not build.machine_is_64bit:
-+ build.env.Append(CCFLAGS='/arch:SSE2')
-+ build.env.Append(CPPDEFINES=['__SSE__', '__SSE2__'])
-+ elif optimize_level == Optimize.LEVEL_NATIVE:
-+ self.status = "native: tuned for this CPU (%s)" % build.machine
-+ build.env.Append(CCFLAGS='/favor:' + build.machine)
-+ elif optimize_level == Optimize.LEVEL_LEGACY:
-+ self.status = "legacy: pure i386 code"
-+ else:
-+ # Not possible to reach this code if enabled is written
-+ # correctly.
-+ raise Exception("optimize={} is not supported. "
-+ "Use portable, native, legacy or off"
-+ .format(optimize_level))
-+
-+ # SSE and SSE2 are core instructions on x64
-+ if build.machine_is_64bit:
-+ build.env.Append(CPPDEFINES=['__SSE__', '__SSE2__'])
-+
-+ elif build.toolchain_is_gnu:
-+ # Common flags to all optimizations.
-+ # -ffast-math will pevent a performance penalty by denormals
-+ # (floating point values almost Zero are treated as Zero)
-+ # unfortunately that work only on 64 bit CPUs or with sse2 enabled
-+
-+ # the following optimisation flags makes the engine code ~3 times
-+ # faster, measured on a Atom CPU.
-+ build.env.Append(CCFLAGS='-O3 -ffast-math -funroll-loops')
-+
-+ # set -fomit-frame-pointer when we don't profile.
-+ # Note: It is only included in -O on machines where it does not
-+ # interfere with debugging
-+ if not int(build.flags['profiling']):
-+ build.env.Append(CCFLAGS='-fomit-frame-pointer')
-+
-+ if optimize_level == Optimize.LEVEL_PORTABLE:
-+ # portable: sse2 CPU (>= Pentium 4)
-+ if build.architecture_is_x86:
-+ self.status = "portable: sse2 CPU (>= Pentium 4)"
-+ build.env.Append(CCFLAGS='-mtune=generic')
-+ # -mtune=generic pick the most common, but compatible options.
-+ # on arm platforms equivalent to -march=arch
-+ if not build.machine_is_64bit:
-+ # the sse flags are not set by default on 32 bit builds
-+ # but are not supported on arm builds
-+ build.env.Append(CCFLAGS='-msse2 -mfpmath=sse')
-+ else:
-+ self.status = "portable"
-+ # this sets macros __SSE2_MATH__ __SSE_MATH__ __SSE2__ __SSE__
-+ # This should be our default build for distribution
-+ # It's a little sketchy, but turning on SSE2 will gain
-+ # 100% performance in our filter code and allows us to
-+ # turns on denormal zeroing.
-+ # We don't really support CPU's earlier than Pentium 4,
-+ # which is the class of CPUs this decision affects.
-+ # The downside of this is that we aren't truly
-+ # i386 compatible, so builds that claim 'i386' will crash.
-+ # -- rryan 2/2011
-+ # Note: SSE2 is a core part of x64 CPUs
-+ elif optimize_level == Optimize.LEVEL_NATIVE:
-+ self.status = "native: tuned for this CPU (%s)" % build.machine
-+ build.env.Append(CCFLAGS='-march=native')
-+ # http://en.chys.info/2010/04/what-exactly-marchnative-means/
-+ # Note: requires gcc >= 4.2.0
-+ # macros like __SSE2_MATH__ __SSE_MATH__ __SSE2__ __SSE__
-+ # are set automaticaly
-+ if build.architecture_is_x86 and not build.machine_is_64bit:
-+ # the sse flags are not set by default on 32 bit builds
-+ # but are not supported on arm builds
-+ build.env.Append(CCFLAGS='-msse2 -mfpmath=sse')
-+ elif optimize_level == Optimize.LEVEL_LEGACY:
-+ if build.architecture_is_x86:
-+ self.status = "legacy: pure i386 code"
-+ build.env.Append(CCFLAGS='-mtune=generic')
-+ # -mtune=generic pick the most common, but compatible options.
-+ # on arm platforms equivalent to -march=arch
-+ else:
-+ self.status = "legacy"
-+ else:
-+ # Not possible to reach this code if enabled is written
-+ # correctly.
-+ raise Exception("optimize={} is not supported. "
-+ "Use portable, native, legacy or off"
-+ .format(optimize_level))
-+
-+ # what others do:
-+ # soundtouch uses just -O3 in Ubuntu Trusty
-+ # rubberband uses just -O2 in Ubuntu Trusty
-+ # fftw3 (used by rubberband) in Ubuntu Trusty
-+ # -O3 -fomit-frame-pointer -mtune=native -malign-double
-+ # -fstrict-aliasing -fno-schedule-insns -ffast-math
-+
-+
-+class AutoDjCrates(Feature):
-+ def description(self):
-+ return "Auto-DJ crates (for random tracks)"
-+
-+ def enabled(self, build):
-+ build.flags['autodjcrates'] = \
-+ util.get_flags(build.env, 'autodjcrates', 1)
-+ if int(build.flags['autodjcrates']):
-+ return True
-+ return False
-+
-+ def add_options(self, build, vars):
-+ vars.Add('autodjcrates',
-+ 'Set to 1 to enable crates as a source for random Auto-DJ tracks.', 1)
-+
-+ def configure(self, build, conf):
-+ if not self.enabled(build):
-+ return
-+ build.env.Append(CPPDEFINES='__AUTODJCRATES__')
-+
-+ def sources(self, build):
-+ return ['library/dao/autodjcratesdao.cpp']
-+
-+class MacAppStoreException(Feature):
-+ def description(self):
-+ return "Build for Mac App Store"
-+
-+ def enabled(self, build):
-+ build.flags['macappstore'] = util.get_flags(build.env,
-+ 'macappstore', 0)
-+ if int(build.flags['macappstore']):
-+ # Existence of the macappstore option forces vinylcontrol off due to
-+ # licensing issues.
-+ build.flags['vinylcontrol'] = 0
-+ return True
-+ return False
-+
-+ def add_options(self, build, vars):
-+ vars.Add('macappstore', 'Set to 1 to indicate the build is for the Mac App Store', 0)
-+
-+ def configure(self, build, conf):
-+ if not self.enabled(build):
-+ return
-+ build.env.Append(CPPDEFINES='__MACAPPSTORE__')
-+
-+class LocaleCompare(Feature):
-+ def description(self):
-+ return "Locale Aware Compare for SQLite"
-+
-+ def default(self, build):
-+ return 1 if build.platform_is_linux else 0
-+
-+ def enabled(self, build):
-+ build.flags['localecompare'] = util.get_flags(build.env, 'localecompare',
-+ self.default(build))
-+ if int(build.flags['localecompare']):
-+ return True
-+ return False
-+
-+ def add_options(self, build, vars):
-+ vars.Add('localecompare',
-+ 'Set to 1 to enable Locale Aware Compare support for SQLite.',
-+ self.default(build))
-+
-+ def configure(self, build, conf):
-+ if not self.enabled(build):
-+ return
-+ if int(util.get_flags(build.env, 'qt_sqlite_plugin', 0)):
-+ raise Exception('WARNING: localecompare is not compatible with the Qt SQLite plugin')
-+ if not conf.CheckLib(['sqlite3']):
-+ raise Exception('Missing libsqlite3 -- exiting!')
-+ build.env.Append(CPPDEFINES='__SQLITE3__')
---- mixxx-2.0.0~dfsg.orig/src/controllers/hid/hidcontroller.h
-+++ mixxx-2.0.0~dfsg/src/controllers/hid/hidcontroller.h
+--- a/src/controllers/hid/hidcontroller.h
++++ b/src/controllers/hid/hidcontroller.h
@@ -8,7 +8,7 @@
#ifndef HIDCONTROLLER_H
#define HIDCONTROLLER_H
@@ -1363,8 +109,8 @@ Last-Update: 2016-01-25
#include <QAtomicInt>
---- mixxx-2.0.0~dfsg.orig/src/controllers/hid/hidenumerator.cpp
-+++ mixxx-2.0.0~dfsg/src/controllers/hid/hidenumerator.cpp
+--- a/src/controllers/hid/hidenumerator.cpp
++++ b/src/controllers/hid/hidenumerator.cpp
@@ -5,7 +5,7 @@
* @brief This class handles discovery and enumeration of DJ controllers that use the USB-HID protocol
*/
--
mixxx packaging
More information about the pkg-multimedia-commits
mailing list