diff -Naur mixxx-2.0.0/build/depends.py mixxx-2.0.0_patch/build/depends.py --- mixxx-2.0.0/build/depends.py 2015-12-29 08:10:41.000000000 -0800 +++ mixxx-2.0.0_patch/build/depends.py 2016-01-11 20:23:40.641866196 -0800 @@ -369,25 +369,10 @@ class FidLib(Dependence): - def sources(self, build): - symbol = None - if build.platform_is_windows: - if build.toolchain_is_msvs: - symbol = 'T_MSVC' - elif build.crosscompile: - # Not sure why, but fidlib won't build with mingw32msvc and - # T_MINGW - symbol = 'T_LINUX' - elif build.toolchain_is_gnu: - symbol = 'T_MINGW' - else: - symbol = 'T_LINUX' - - return [build.env.StaticObject('#lib/fidlib-0.9.10/fidlib.c', - CPPDEFINES=symbol)] - def configure(self, build, conf): - build.env.Append(CPPPATH='#lib/fidlib-0.9.10/') + if not conf.CheckLib('fidlib'): + raise Exception('Did not find fidlib library, exiting!') + build.env.Append(CPPPATH=[SCons.ARGUMENTS.get('prefix') + '/include/fidlib']) class ReplayGain(Dependence): @@ -400,42 +385,17 @@ class SoundTouch(Dependence): - SOUNDTOUCH_PATH = 'soundtouch-1.8.0' def sources(self, build): - return ['engine/enginebufferscalest.cpp', - '#lib/%s/AAFilter.cpp' % self.SOUNDTOUCH_PATH, - '#lib/%s/BPMDetect.cpp' % self.SOUNDTOUCH_PATH, - '#lib/%s/FIFOSampleBuffer.cpp' % self.SOUNDTOUCH_PATH, - '#lib/%s/FIRFilter.cpp' % self.SOUNDTOUCH_PATH, - '#lib/%s/InterpolateCubic.cpp' % self.SOUNDTOUCH_PATH, - '#lib/%s/InterpolateLinear.cpp' % self.SOUNDTOUCH_PATH, - '#lib/%s/InterpolateShannon.cpp' % self.SOUNDTOUCH_PATH, - '#lib/%s/PeakFinder.cpp' % self.SOUNDTOUCH_PATH, - '#lib/%s/RateTransposer.cpp' % self.SOUNDTOUCH_PATH, - '#lib/%s/SoundTouch.cpp' % self.SOUNDTOUCH_PATH, - '#lib/%s/TDStretch.cpp' % self.SOUNDTOUCH_PATH, - # SoundTouch CPU optimizations are only for x86 - # architectures. SoundTouch automatically ignores these files - # when it is not being built for an architecture that supports - # them. - '#lib/%s/cpu_detect_x86.cpp' % self.SOUNDTOUCH_PATH, - '#lib/%s/mmx_optimized.cpp' % self.SOUNDTOUCH_PATH, - '#lib/%s/sse_optimized.cpp' % self.SOUNDTOUCH_PATH] + return ['engine/enginebufferscalest.cpp'] def configure(self, build, conf, env=None): if env is None: env = build.env - env.Append(CPPPATH=['#lib/%s' % self.SOUNDTOUCH_PATH]) - - # Prevents circular import. - from features import Optimize - - # If we do not want optimizations then disable them. - optimize = (build.flags['optimize'] if 'optimize' in build.flags - else Optimize.get_optimization_level(build)) - if optimize == Optimize.LEVEL_OFF: - env.Append(CPPDEFINES='SOUNDTOUCH_DISABLE_X86_OPTIMIZATIONS') + if not conf.CheckLib(['SoundTouch','libSoundTouch']): + raise Exception('Did not find SoundTouch library, exiting!') + build.env.Append(CPPPATH=[SCons.ARGUMENTS.get('prefix') + '/include/soundtouch']) + build.env.Append(LIBS='SoundTouch') class RubberBand(Dependence): diff -Naur mixxx-2.0.0/build/features.py mixxx-2.0.0_patch/build/features.py --- mixxx-2.0.0/build/features.py 2015-12-29 08:10:41.000000000 -0800 +++ mixxx-2.0.0_patch/build/features.py 2016-01-11 20:27:05.342990424 -0800 @@ -62,10 +62,6 @@ 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( @@ -90,23 +86,17 @@ build.env.Append(CPPDEFINES='__HID__') + if not conf.CheckLib('hidapi-libusb'): + raise Exception('Did not find HID API library, exiting!') + build.env.Append(CPPPATH=[SCons.ARGUMENTS.get('prefix') + '/include/hidapi']) + build.env.Append(LIBS='hidapi-libusb') + + 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 @@ -745,24 +735,15 @@ 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)) + if not conf.CheckLib('gtest'): + raise Exception('Did not find gtest library, exiting!') + test_env.Append(CPPPATH=[SCons.ARGUMENTS.get('prefix') + '/include/gtest']) + test_env.Append(LIBS='gtest') + + if not conf.CheckLib('gmock'): + raise Exception('Did not find gmock library, exiting!') + test_env.Append(CPPPATH=[SCons.ARGUMENTS.get('prefix') + '/include/gmock']) + test_env.Append(LIBS='gmock') return []