media-sound/carla/carla-2.4.3.ebuild (view raw)
1# Copyright 1999-2022 Gentoo Authors
2# Distributed under the terms of the GNU General Public License v2
3
4EAPI=7
5
6PYTHON_COMPAT=( python3_{8,9,10} )
7inherit python-single-r1 xdg-utils
8
9DESCRIPTION="Fully-featured audio plugin host, supports many audio drivers and plugin formats"
10HOMEPAGE="http://kxstudio.linuxaudio.org/Applications:Carla"
11if [[ ${PV} == *9999 ]]; then
12 # Disable submodules to prevent external plugins from being built and installed
13 inherit git-r3
14 EGIT_REPO_URI="https://github.com/falkTX/Carla.git"
15 EGIT_SUBMODULES=()
16 KEYWORDS=""
17else
18 SRC_URI="https://github.com/falkTX/Carla/archive/v${PV}.tar.gz -> ${P}.tar.gz"
19 RESTRICT="mirror"
20 KEYWORDS="~amd64"
21 S="${WORKDIR}/Carla-${PV}"
22fi
23LICENSE="GPL-2 LGPL-3"
24SLOT="0"
25
26IUSE="alsa gtk gtk2 opengl osc -pulseaudio rdf sf2 sndfile X"
27REQUIRED_USE="${PYTHON_REQUIRED_USE}"
28
29RDEPEND="${PYTHON_DEPS}
30 $(python_gen_cond_dep 'dev-python/PyQt5[gui,opengl?,svg,widgets,${PYTHON_USEDEP}]')
31 virtual/jack
32 alsa? ( media-libs/alsa-lib )
33 gtk? ( x11-libs/gtk+:3 )
34 gtk2? ( x11-libs/gtk+:2 )
35 osc? (
36 media-libs/liblo
37 media-libs/pyliblo
38 )
39 pulseaudio? ( media-sound/pulseaudio )
40 rdf? ( dev-python/rdflib )
41 sf2? ( media-sound/fluidsynth )
42 sndfile? ( media-libs/libsndfile )
43 X? ( x11-base/xorg-server )"
44DEPEND=${RDEPEND}
45
46PATCHES=(
47 "${FILESDIR}/${P}-metainfo.patch"
48)
49
50src_prepare() {
51 sed -i -e "s|exec \$PYTHON|exec ${PYTHON}|" \
52 data/carla \
53 data/carla-control \
54 data/carla-database \
55 data/carla-jack-multi \
56 data/carla-jack-single \
57 data/carla-patchbay \
58 data/carla-rack \
59 data/carla-settings || die "sed failed"
60 default
61}
62
63src_compile() {
64 myemakeargs=(
65 LIBDIR="/usr/$(get_libdir)"
66 SKIP_STRIPPING=true
67 HAVE_FFMPEG=false
68 HAVE_ZYN_DEPS=false
69 HAVE_ZYN_UI_DEPS=false
70 HAVE_QT4=false
71 HAVE_QT5=true
72 HAVE_PYQT5=true
73 DEFAULT_QT=5
74 HAVE_ALSA=$(usex alsa true false)
75 HAVE_FLUIDSYNTH=$(usex sf2 true false)
76 HAVE_GTK2=$(usex gtk2 true false)
77 HAVE_GTK3=$(usex gtk true false)
78 HAVE_LIBLO=$(usex osc true false)
79 HAVE_PULSEAUDIO=$(usex pulseaudio true false)
80 HAVE_SNDFILE=$(usex sndfile true false)
81 HAVE_X11=$(usex X true false)
82 )
83
84 # Print which options are enabled/disabled
85 make features PREFIX="/usr" "${myemakeargs[@]}"
86
87 emake PREFIX="/usr" "${myemakeargs[@]}"
88}
89
90src_install() {
91 emake DESTDIR="${D}" PREFIX="/usr" "${myemakeargs[@]}" install
92 if ! use osc; then
93 find "${D}/usr" -iname "carla-control*" | xargs rm
94 fi
95}
96
97pkg_postinst() {
98 xdg_mimeinfo_database_update
99 xdg_desktop_database_update
100 xdg_icon_cache_update
101}
102
103pkg_postrm() {
104 xdg_mimeinfo_database_update
105 xdg_desktop_database_update
106 xdg_icon_cache_update
107}