media-sound/mixxx: Added qt5 support.

Package-Manager: portage-2.3.0
Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
This commit is contained in:
Lars Wendler
2016-07-22 02:20:03 +02:00
parent dd68af9139
commit 6abca74d6a
2 changed files with 202 additions and 9 deletions

View File

@@ -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 []

View File

@@ -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)"