commit:     6abca74d6a9f9b8a44bd884faecbce9a1cd27bf7
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 22 00:20:03 2016 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Fri Jul 22 00:21:59 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6abca74d

media-sound/mixxx: Added qt5 support.

Package-Manager: portage-2.3.0
Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>

 .../mixxx/files/mixxx-2.0.0-system-libs.patch      | 158 +++++++++++++++++++++
 .../{mixxx-2.0.0.ebuild => mixxx-2.0.0-r1.ebuild}  |  53 +++++--
 2 files changed, 202 insertions(+), 9 deletions(-)

diff --git a/media-sound/mixxx/files/mixxx-2.0.0-system-libs.patch 
b/media-sound/mixxx/files/mixxx-2.0.0-system-libs.patch
new file mode 100644
index 0000000..f0c86c8
--- /dev/null
+++ b/media-sound/mixxx/files/mixxx-2.0.0-system-libs.patch
@@ -0,0 +1,158 @@
+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 []
+ 

diff --git a/media-sound/mixxx/mixxx-2.0.0.ebuild 
b/media-sound/mixxx/mixxx-2.0.0-r1.ebuild
similarity index 63%
rename from media-sound/mixxx/mixxx-2.0.0.ebuild
rename to media-sound/mixxx/mixxx-2.0.0-r1.ebuild
index f93d439..ffe8c33 100644
--- a/media-sound/mixxx/mixxx-2.0.0.ebuild
+++ b/media-sound/mixxx/mixxx-2.0.0-r1.ebuild
@@ -13,17 +13,14 @@ SRC_URI="http://downloads.${PN}.org/${P}/${P}-src.tar.gz";
 LICENSE="GPL-2"
 SLOT="0"
 KEYWORDS="~amd64 ~x86"
-IUSE="aac debug doc hid mp3 mp4 shout wavpack ffmpeg"
+IUSE="aac debug doc hid mp3 mp4 qt4 +qt5 shout wavpack ffmpeg"
+REQUIRED_USE="^^ ( qt4 qt5 )"
 
+# fails to compile system-fidlib. Add ">media-libs/fidlib-0.9.10-r1" once this 
+# got fixed
 RDEPEND="dev-db/sqlite
        dev-libs/libusb:1
        dev-libs/protobuf
-       dev-qt/qtcore:4
-       dev-qt/qtgui:4
-       dev-qt/qtopengl:4
-       dev-qt/qtscript:4
-       dev-qt/qtsql:4
-       dev-qt/qtsvg:4
        media-libs/chromaprint
        media-libs/flac
        media-libs/libid3tag
@@ -45,27 +42,65 @@ RDEPEND="dev-db/sqlite
        hid? ( dev-libs/hidapi )
        mp3? ( media-libs/libmad )
        mp4? ( media-libs/libmp4v2:= )
+       qt4? (
+               dev-qt/qtcore:4
+               dev-qt/qtgui:4
+               dev-qt/qtopengl:4
+               dev-qt/qtscript:4
+               dev-qt/qtsql:4
+               dev-qt/qtsvg:4
+       )
+       qt5? (
+               dev-qt/qtconcurrent:5
+               dev-qt/qtcore:5
+               dev-qt/qtgui:5
+               dev-qt/qtnetwork:5
+               dev-qt/qtopengl:5
+               dev-qt/qtscript:5[scripttools]
+               dev-qt/qtsql:5
+               dev-qt/qtsvg:5
+               dev-qt/qtwidgets:5
+               dev-qt/qtxml:5
+       )
        shout? ( media-libs/libshout )
        wavpack? ( media-sound/wavpack )
        ffmpeg? ( media-video/ffmpeg )"
+# media-libs/rubberband RDEPENDs on sci-libs/fftw:3.0
 DEPEND="${RDEPEND}
-       virtual/pkgconfig"
+       sci-libs/fftw:3.0
+       virtual/pkgconfig
+       qt5? ( dev-qt/qtxmlpatterns:5 )"
 
 PATCHES=(
        "${FILESDIR}"/${PN}-2.0.0-docs.patch
+       #"${FILESDIR}"/${PN}-2.0.0-system-libs.patch
 )
 
+src_prepare() {
+       # use multilib compatible directory for plugins
+       sed -i -e "/unix_lib_path =/s/'lib'/'$(get_libdir)'/" src/SConscript || 
die
+
+       default
+}
+
 src_configure() {
+       local myqtdir=qt5
+       if use qt4 ; then
+               myqtdir="qt4"
+       fi
+
        myesconsargs=(
                prefix="${EPREFIX}/usr"
-               qtdir="${EPREFIX}/usr/$(get_libdir)/qt4"
+               qtdir="${EPREFIX}/usr/$(get_libdir)/${myqtdir}"
                faad="$(usex aac 1 0)"
                ffmpeg="$(usex ffmpeg 1 0)"
                hid="$(usex hid 1 0)"
+               hifieq=1
                m4a="$(usex mp4 1 0)"
                mad="$(usex mp3 1 0)"
                optimize=native
                qdebug="$(usex debug 1 0)"
+               qt5="$(usex qt5 1 0)"
                shoutcast="$(usex shout 1 0)"
                vinylcontrol=1
                wv="$(usex wavpack 1 0)"

Reply via email to