diff options
Diffstat (limited to 'games-fps/yamagi-quake2/yamagi-quake2-7.10.ebuild')
-rw-r--r-- | games-fps/yamagi-quake2/yamagi-quake2-7.10.ebuild | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/games-fps/yamagi-quake2/yamagi-quake2-7.10.ebuild b/games-fps/yamagi-quake2/yamagi-quake2-7.10.ebuild new file mode 100644 index 000000000000..09f38aad41cf --- /dev/null +++ b/games-fps/yamagi-quake2/yamagi-quake2-7.10.ebuild @@ -0,0 +1,132 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit desktop eutils + +CTF_V=1.05 +ROGUE_V=2.04 +XATRIX_V=2.05 + +DESCRIPTION="Quake 2 engine focused on single player" +HOMEPAGE="https://www.yamagi.org/quake2/" +SRC_URI="https://deponie.yamagi.org/quake2/quake2-${PV}.tar.xz + ctf? ( https://deponie.yamagi.org/quake2/quake2-ctf-${CTF_V}.tar.xz ) + rogue? ( https://deponie.yamagi.org/quake2/quake2-rogue-${ROGUE_V}.tar.xz ) + xatrix? ( https://deponie.yamagi.org/quake2/quake2-xatrix-${XATRIX_V}.tar.xz )" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="+client ctf dedicated ogg openal rogue xatrix" +REQUIRED_USE="|| ( client dedicated )" + +RDEPEND="sys-libs/zlib:0= + client? ( + media-libs/libsdl2[opengl,video] + virtual/opengl + ogg? ( + media-libs/libogg + media-libs/libvorbis + ) + openal? ( media-libs/openal ) + !openal? ( media-libs/libsdl2[sound] ) + ) +" + +DEPEND="${RDEPEND}" + +S="${WORKDIR}/quake2-${PV}" + +PATCHES=( "${FILESDIR}"/${PN}-respect-flags.patch ) +DOCS=( CHANGELOG CONTRIBUTE README.md ) + +mymake() { + emake \ + VERBOSE=1 \ + DLOPEN_OPENAL=no \ + WITH_CDA=no \ + WITH_SYSTEMWIDE=yes \ + WITH_SYSTEMDIR="${EPREFIX}"/usr/share/games/quake2 \ + WITH_ZIP=yes \ + WITH_OGG=$(usex ogg) \ + WITH_OPENAL=$(usex openal) \ + "$@" +} + +src_prepare() { + local addon + for addon in ctf rogue xatrix; do + use ${addon} || continue + + pushd "${WORKDIR}"/quake2-${addon}-* >/dev/null || die + eapply -l -- "${FILESDIR}"/${PN}-addon-respect-flags.patch + popd >/dev/null || die + done + + default +} + +src_compile() { + local targets=( game ) + use client && targets+=( client ref_gl1 ref_gl3 ) + use dedicated && targets+=( server ) + + mymake config + mymake "${targets[@]}" + + local addon + for addon in ctf rogue xatrix; do + use ${addon} || continue + emake -C "${WORKDIR}"/quake2-${addon}-* VERBOSE=1 + done +} + +src_install() { + insinto /usr/lib/yamagi-quake2 + # Yamagi Quake II expects all binaries to be in the same directory + # See stuff/packaging.md for more info + exeinto /usr/lib/yamagi-quake2 + doins -r release/. + + if use client; then + doexe release/quake2 + dosym ../lib/yamagi-quake2/quake2 /usr/bin/yquake2 + + newicon stuff/icon/Quake2.svg "yamagi-quake2.svg" + make_desktop_entry "yquake2" "Yamagi Quake II" + fi + + if use dedicated; then + doexe release/q2ded + dosym ../lib/yamagi-quake2/q2ded /usr/bin/yq2ded + fi + + insinto /usr/lib/yamagi-quake2/baseq2 + doins stuff/yq2.cfg + + local addon + for addon in ctf rogue xatrix; do + use ${addon} || continue + + insinto /usr/lib/yamagi-quake2/${addon} + doins "${WORKDIR}"/quake2-${addon}-*/release/game.so + + local addon_name + case ${addon} in + ctf) addon_name="CTF" ;; + rogue) addon_name="Ground Zero" ;; + xatrix) addon_name="The Reckoning" ;; + esac + + make_wrapper "yquake2-${addon}" "yquake2 +set game ${addon}" + make_desktop_entry "yquake2-${addon}" "Yamagi Quake II: ${addon_name}" + done + + einstalldocs + if use client; then + docinto examples + dodoc stuff/cdripper.sh + fi +} |