public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Lars Wendler" <polynomial-c@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: media-sound/mixxx/files/, media-sound/mixxx/
Date: Fri, 22 Jul 2016 00:22:03 +0000 (UTC)	[thread overview]
Message-ID: <1469146919.6abca74d6a9f9b8a44bd884faecbce9a1cd27bf7.polynomial-c@gentoo> (raw)

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	other threads:[~2016-07-22  0:27 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-22  0:22 Lars Wendler [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-03-10 17:05 [gentoo-commits] repo/gentoo:master commit in: media-sound/mixxx/files/, media-sound/mixxx/ Andreas Sturmlechner
2025-02-10 20:42 Andreas Sturmlechner
2025-02-10 20:42 Andreas Sturmlechner
2025-01-30 22:39 Andreas Sturmlechner
2022-05-10 17:53 Miroslav Šulc
2021-01-04  9:17 Miroslav Šulc
2020-08-11  7:27 Miroslav Šulc
2020-06-08  9:19 Lars Wendler
2020-01-24 22:48 Andreas Sturmlechner
2018-12-26  0:04 Lars Wendler
2016-07-21 21:16 Lars Wendler

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1469146919.6abca74d6a9f9b8a44bd884faecbce9a1cd27bf7.polynomial-c@gentoo \
    --to=polynomial-c@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox