[proaudio] mixxx-9999 Ebuild && Patch Updates

[ Thread Index | Date Index | More lists.tuxfamily.org/proaudio Archives ]


Thanks for the ebuild update. Two of the patches broke upstream and have been attached for update. The 9999-no-bzr.patch can now be removed because it functions correctly upstream and with portage. The attached ebuild reflects the changes for the no-bzr patch update.


On 12/08/2013 07:04 AM, Karl Lindén wrote:
Committed as revision 2814. Thanks!


2013/12/7 Alex Barker <alex@xxxxxxxxxx <mailto:alex@xxxxxxxxxx>>

    Attached is an update to the mixxx-9999 ebuild that adds a new
    dependency (rubberband) for key detection.  Everything else is
    identical.



--- mixxx-9999/build/depends.py
+++ mixxx-9999/build/depends.py
@@ -862,10 +862,8 @@ class MixxxCore(Feature):
         if build.toolchain_is_gnu:
             # Default GNU Options
             # TODO(XXX) always generate debugging info?
-            build.env.Append(CCFLAGS='-pipe')
             build.env.Append(CCFLAGS='-Wall')
             build.env.Append(CCFLAGS='-Wextra')
-            build.env.Append(CCFLAGS='-g')
 
             # Check that g++ is present (yeah, SCONS is a bit dumb here)
             # returns a non zeros return code if g++ is found
--- mixxx-9999/build/depends.py
+++ mixxx-9999/build/depends.py
@@ -317,26 +317,10 @@ class Qt(Dependence):
 
 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):
 
@@ -348,7 +332,6 @@ class ReplayGain(Dependence):
 
 
 class SoundTouch(Dependence):
-    SOUNDTOUCH_PATH = 'soundtouch-1.6.0'
 
     def sse_enabled(self, build):
         optimize = int(util.get_flags(build.env, 'optimize', 1))
@@ -357,30 +340,7 @@ class SoundTouch(Dependence):
                 (build.toolchain_is_gnu and optimize > 1))
 
     def sources(self, build):
-        sources = ['engine/enginebufferscalest.cpp',
-                   '#lib/%s/SoundTouch.cpp' % self.SOUNDTOUCH_PATH,
-                   '#lib/%s/TDStretch.cpp' % self.SOUNDTOUCH_PATH,
-                   '#lib/%s/RateTransposer.cpp' % self.SOUNDTOUCH_PATH,
-                   '#lib/%s/AAFilter.cpp' % self.SOUNDTOUCH_PATH,
-                   '#lib/%s/FIFOSampleBuffer.cpp' % self.SOUNDTOUCH_PATH,
-                   '#lib/%s/FIRFilter.cpp' % self.SOUNDTOUCH_PATH,
-                   '#lib/%s/PeakFinder.cpp' % self.SOUNDTOUCH_PATH,
-                   '#lib/%s/BPMDetect.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.
-        cpu_detection = '#lib/%s/cpu_detect_x86_win.cpp' if build.toolchain_is_msvs else \
-            '#lib/%s/cpu_detect_x86_gcc.cpp'
-        sources.append(cpu_detection % self.SOUNDTOUCH_PATH)
-
-        # Check if the compiler has SSE extention enabled
-        # Allways the case on x64 (core instructions)
-        if self.sse_enabled(build):
-            sources.extend(
-                ['#lib/%s/mmx_optimized.cpp' % self.SOUNDTOUCH_PATH,
-                 '#lib/%s/sse_optimized.cpp' % self.SOUNDTOUCH_PATH, ])
-        return sources
+        return ['engine/enginebufferscalest.cpp']
 
     def configure(self, build, conf, env=None):
         if env is None:
@@ -388,12 +348,11 @@ class SoundTouch(Dependence):
         if build.platform_is_windows:
             # Regardless of the bitwidth, ST checks for WIN32
             env.Append(CPPDEFINES='WIN32')
-        env.Append(CPPPATH=['#lib/%s' % self.SOUNDTOUCH_PATH])
 
-        # Check if the compiler has SSE extention enabled
-        # Allways the case on x64 (core instructions)
-        if self.sse_enabled(build):
-            env.Append(CPPDEFINES='SOUNDTOUCH_ALLOW_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):


--- mixxx-9999/build/features.py
+++ mixxx-9999/build/features.py
@@ -54,7 +54,6 @@ class HSS1394(Feature):
 
 
 class HID(Feature):
-    HIDAPI_INTERNAL_PATH = '#lib/hidapi-0.8.0-pre'
 
     def description(self):
         return "HID controller support"
@@ -71,10 +70,6 @@ class HID(Feature):
     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(
@@ -96,22 +91,16 @@ class HID(Feature):
 
         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:
-            sources.append(
-                os.path.join(self.HIDAPI_INTERNAL_PATH, 'linux/hid-libusb.c'))
-        elif build.platform_is_osx:
-            sources.append(
-                os.path.join(self.HIDAPI_INTERNAL_PATH, 'mac/hid.c'))
         return sources
 
 
@@ -817,26 +806,15 @@ class TestSuite(Feature):
         test_env.Append(CCFLAGS='-pthread')
         test_env.Append(LINKFLAGS='-pthread')
 
-        test_env.Append(CPPPATH="#lib/gtest-1.5.0/include")
-        gtest_dir = test_env.Dir("#lib/gtest-1.5.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.5.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.5.0/include")
-        gmock_dir = test_env.Dir("#lib/gmock-1.5.0")
-        # gmock_dir.addRepository(build.env.Dir('#lib/gmock-1.5.0'))
-        test_env['LIB_OUTPUT'] = '#/lib/gmock-1.5.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')
 
-        return []
+        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')
 
 
 class Shoutcast(Feature):


--- mixxx-9999/src/engine/enginefilter.h
+++ mixxx-9999/src/engine/enginefilter.h
@@ -20,7 +20,7 @@
 
 #define MIXXX
 #include "engine/engineobject.h"
-#include "../lib/fidlib-0.9.10/fidlib.h"
+#include <fidlib.h>
 #include "defs.h"
 
 #define PREDEF_HP 1


--- mixxx-9999/src/engine/enginefilterbutterworth8.cpp
+++ mixxx-9999/src/engine/enginefilterbutterworth8.cpp
@@ -18,7 +18,7 @@
 #include "engine/enginefilterbutterworth8.h"
 #include "engine/enginefilter.h"
 #include "engine/engineobject.h"
-#include "../lib/fidlib-0.9.10/fidlib.h"
+#include <fidlib.h>
 
 inline double _processLowpass(double *coef, double *buf, register double val);
 inline double _processBandpass(double *coef, double *buf, register double val);
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

EAPI=5

inherit eutils git-2 multilib scons-utils toolchain-funcs

DESCRIPTION="A Qt based Digital DJ tool"
HOMEPAGE="http://www.mixxx.org/";
EGIT_REPO_URI="git://github.com/mixxxdj/${PN}.git"
EGIT_BRANCH="master"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS=""
IUSE="aac debug doc hid mp3 mp4 pulseaudio shout wavpack"

RDEPEND="dev-libs/protobuf
	media-libs/chromaprint
	>=media-libs/fidlib-0.9.10-r1
	media-libs/flac
	media-libs/libid3tag
	media-libs/libogg
	media-libs/libsndfile
	>=media-libs/libsoundtouch-1.5
	media-libs/libvorbis
	>=media-libs/portaudio-19_pre
	media-libs/portmidi
	media-libs/rubberband
	media-libs/taglib
	media-libs/vamp-plugin-sdk
	sci-libs/fftw:3.0
	virtual/glu
	virtual/opengl
	dev-qt/qtgui:4
	dev-qt/qtopengl:4
	dev-qt/qtsql:4
	dev-qt/qtsvg:4
	dev-qt/qtwebkit:4
	dev-qt/qtxmlpatterns:4
	aac? (
		media-libs/faad2
		media-libs/libmp4v2:0
	)
	hid? ( dev-libs/hidapi )
	mp3? ( media-libs/libmad )
	mp4? ( media-libs/libmp4v2 )
	pulseaudio? ( media-sound/pulseaudio )
	shout? ( media-libs/libshout )
	wavpack? ( media-sound/wavpack )"
DEPEND="${RDEPEND}
	virtual/pkgconfig"

S=${S}/${PN}

src_prepare() {
	epatch "${FILESDIR}"/${P}-cflags.patch
	epatch "${FILESDIR}"/${P}-system-libs.patch
	epatch "${FILESDIR}"/${P}-docs.patch

	# use multilib compatible directory for plugins
	sed -i -e "/unix_lib_path =/s/'lib'/'$(get_libdir)'/" src/SConscript || die

	# alter startup command when pulseaudio support is disabled
	if ! use pulseaudio ; then
		sed -i -e 's:pasuspender ::' src/mixxx.desktop || die
	fi
}

src_configure() {
	myesconsargs=(
		prefix="${EPREFIX}/usr"
		qtdir="${EPREFIX}/usr/$(get_libdir)/qt4"
		hifieq=1
		vinylcontrol=1
		optimize=0
		$(use_scons aac faad)
		$(use_scons debug qdebug)
		$(use_scons hid hid)
		$(use_scons mp3 mad)
		$(use_scons mp4 m4a)
		$(use_scons shout shoutcast)
		$(use_scons wavpack wv)
	)
}

src_compile() {
	CC="$(tc-getCC)" CXX="$(tc-getCXX)" LINKFLAGS="${LDFLAGS}" \
	LIBPATH="${EPREFIX}/usr/$(get_libdir)" escons
}

src_install() {
	CC="$(tc-getCC)" CXX="$(tc-getCXX)" LINKFLAGS="${LDFLAGS}" \
	LIBPATH="${EPREFIX}/usr/$(get_libdir)" escons install \
		install_root="${ED}"/usr

	dodoc README Mixxx-Manual.pdf
}


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/