blob: 9b8f6610b85b5e9cb4bc8107d8d0466a82353f1f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake-multilib systemd toolchain-funcs
DESCRIPTION="Software real-time synthesizer based on the Soundfont 2 specifications"
HOMEPAGE="https://www.fluidsynth.org"
SRC_URI="https://github.com/FluidSynth/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="LGPL-2.1+"
SLOT="0/3"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86"
IUSE="alsa dbus debug doc ipv6 jack ladspa lash network oss pipewire portaudio pulseaudio +readline sdl +sndfile systemd threads"
BDEPEND="
virtual/pkgconfig
doc? (
app-text/doxygen
dev-libs/libxslt
)
"
DEPEND="
dev-libs/glib:2[${MULTILIB_USEDEP}]
alsa? (
media-libs/alsa-lib[${MULTILIB_USEDEP}]
lash? ( media-sound/lash[${MULTILIB_USEDEP}] )
)
dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
jack? ( virtual/jack[${MULTILIB_USEDEP}] )
ladspa? (
media-libs/ladspa-sdk[${MULTILIB_USEDEP}]
media-plugins/cmt-plugins[${MULTILIB_USEDEP}]
)
pipewire? (
media-video/pipewire:0=[${MULTILIB_USEDEP}]
)
portaudio? ( media-libs/portaudio[${MULTILIB_USEDEP}] )
pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
readline? ( sys-libs/readline:0=[${MULTILIB_USEDEP}] )
sdl? ( media-libs/libsdl2[${MULTILIB_USEDEP}] )
sndfile? ( media-libs/libsndfile[${MULTILIB_USEDEP}] )
"
RDEPEND="${DEPEND}"
DOCS=( AUTHORS ChangeLog README.md THANKS TODO doc/fluidsynth-v20-devdoc.txt )
src_prepare() {
# https://bugs.gentoo.org/833979#c17
sed -i "/CONFIGURE_COMMAND/{n;s/$/ -DCMAKE_C_COMPILER=$(tc-getBUILD_CC)/}" \
src/CMakeLists.txt || die
cmake_src_prepare
}
src_configure() {
local mycmakeargs=(
-Denable-alsa=$(usex alsa)
-Denable-aufile=ON
-Denable-dbus=$(usex dbus)
-Denable-dsound=OFF # Windows
-Denable-floats=OFF # loat instead of double for DSP samples
-Denable-fpe-check=$(usex debug)
-Denable-ipv6=$(usex ipv6)
-Denable-jack=$(usex jack)
-Denable-ladspa=$(usex ladspa)
-Denable-libinstpatch=OFF # https://github.com/swami/libinstpatch
-Denable-midishare=OFF # http://midishare.sourceforge.net/
-Denable-network=$(usex network)
-Denable-opensles=OFF
-Denable-oboe=OFF # requires OpenSLES and/or AAudio
-Denable-oss=$(usex oss)
-Denable-libsndfile=$(usex sndfile)
-Denable-portaudio=$(usex portaudio)
-Denable-profiling=$(usex debug)
-Denable-pulseaudio=$(usex pulseaudio)
-Denable-pipewire=$(usex pipewire)
-Denable-readline=$(usex readline)
-Denable-sdl2=$(usex sdl)
-Denable-systemd=$(usex systemd)
-Denable-threads=$(usex threads)
-Denable-trap-on-fpe=$(usex debug)
-Denable-ubsan=OFF # compile and link against UBSan (for debugging fluidsynth internals)
-Denable-waveout=OFF # Windows
-Denable-winmidi=OFF # Windows
$(cmake_use_find_package doc Doxygen)
)
if use alsa; then
mycmakeargs+=( -Denable-lash=$(usex lash) )
else
mycmakeargs+=( -Denable-lash=OFF )
fi
if use systemd; then
mycmakeargs+=( -DFLUID_DAEMON_ENV_FILE="/etc/fluidsynth.conf" )
fi
cmake-multilib_src_configure
}
compile_doxygen_doc() {
multilib_is_native_abi && cmake_build doxygen
}
src_compile() {
cmake-multilib_src_compile
use doc && multilib_foreach_abi compile_doxygen_doc
}
install_doxygen_doc() {
if multilib_is_native_abi; then
docinto .
dodoc -r "${BUILD_DIR}/doc/api/html"
fi
}
install_systemd_files() {
if multilib_is_native_abi; then
systemd_dounit "${BUILD_DIR}/fluidsynth.service"
insinto /etc
doins "${BUILD_DIR}/fluidsynth.conf"
fi
}
multilib_src_test() {
eninja check
}
src_install() {
cmake-multilib_src_install
docinto pdf
dodoc doc/*.pdf
docinto examples
dodoc doc/examples/*.c
if use doc; then
multilib_foreach_abi install_doxygen_doc
fi
if use systemd; then
multilib_foreach_abi install_systemd_files
elog "When using fluidsynth as a systemd service, make sure"
elog "to configure your fluidsynth settings globally in "
elog "/etc/fluidsynth.conf or per-user in ~/.config/fluidsynth"
fi
}
|