diff options
author | Lucio Sauer <watermanpaint@posteo.net> | 2024-01-25 10:04:34 +0100 |
---|---|---|
committer | Miroslav Šulc <fordfrog@gentoo.org> | 2024-01-26 08:57:13 +0100 |
commit | fb429b5ab3758bb6169613749496c2070e3c4d8e (patch) | |
tree | f23bccce6ab93fa599a0e6704214bacf263ce130 /media-sound/fluidsynth | |
parent | media-sound/fluidsynth: Add USE flag doc for API documentation (diff) | |
download | gentoo-fb429b5ab3758bb6169613749496c2070e3c4d8e.tar.gz gentoo-fb429b5ab3758bb6169613749496c2070e3c4d8e.tar.bz2 gentoo-fb429b5ab3758bb6169613749496c2070e3c4d8e.zip |
media-sound/fluidsynth: prevent faulty CMake C compiler detection
Manually pass CMAKE_C_COMPILER to subprocess, which relies on
insufficient CMake compiler auto-detection to detect a suitable CBUILD
C compiler.
Closes: https://bugs.gentoo.org/833979
Signed-off-by: Lucio Sauer <watermanpaint@posteo.net>
Closes: https://github.com/gentoo/gentoo/pull/34989
Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>
Diffstat (limited to 'media-sound/fluidsynth')
-rw-r--r-- | media-sound/fluidsynth/fluidsynth-2.3.4-r1.ebuild | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/media-sound/fluidsynth/fluidsynth-2.3.4-r1.ebuild b/media-sound/fluidsynth/fluidsynth-2.3.4-r1.ebuild new file mode 100644 index 000000000000..936c864a0e52 --- /dev/null +++ b/media-sound/fluidsynth/fluidsynth-2.3.4-r1.ebuild @@ -0,0 +1,149 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake-multilib multibuild 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 +} |