games-fps/darkplaces: Stop using games.eclass
authorPacho Ramos <pacho@gentoo.org>
Sun, 29 Apr 2018 16:45:30 +0000 (18:45 +0200)
committerPacho Ramos <pacho@gentoo.org>
Sun, 29 Apr 2018 17:13:07 +0000 (19:13 +0200)
Package-Manager: Portage-2.3.31, Repoman-2.3.9

games-fps/darkplaces/darkplaces-20140513-r1.ebuild [new file with mode: 0644]

diff --git a/games-fps/darkplaces/darkplaces-20140513-r1.ebuild b/games-fps/darkplaces/darkplaces-20140513-r1.ebuild
new file mode 100644 (file)
index 0000000..dc66236
--- /dev/null
@@ -0,0 +1,192 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit eutils flag-o-matic unpacker
+
+# Latest versions are in http://icculus.org/twilight/darkplaces/files/
+MY_PV="${PV/_beta/beta}"
+MY_ENGINE="${PN}engine${MY_PV}.zip"
+
+# Different Quake 1 engines expect the lights in different directories
+# http://www.fuhquake.net/download.html and http://www.kgbsyndicate.com/romi/
+MY_LIGHTS="fuhquake-lits.rar"
+
+DESCRIPTION="Enhanced engine for iD Software's Quake 1"
+HOMEPAGE="http://icculus.org/twilight/darkplaces/"
+SRC_URI="http://icculus.org/twilight/${PN}/files/${MY_ENGINE}
+       lights? (
+               http://www.fuhquake.net/files/extras/${MY_LIGHTS}
+               http://www.kgbsyndicate.com/romi/id1.pk3 )"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="alsa cdinstall cdsound debug dedicated demo lights opengl oss sdl textures"
+
+UIRDEPEND="
+       virtual/jpeg:0
+       media-libs/libogg
+       media-libs/libvorbis
+       virtual/opengl
+       alsa? ( media-libs/alsa-lib )
+       sdl? ( media-libs/libsdl )
+       x11-libs/libX11
+       x11-libs/libXpm
+       x11-libs/libXxf86dga
+       x11-libs/libXxf86vm
+"
+UIDEPEND="
+       x11-proto/xextproto
+       x11-proto/xf86dgaproto
+       x11-proto/xf86vidmodeproto
+       x11-proto/xproto
+"
+RDEPEND="
+       net-misc/curl
+       cdinstall? ( games-fps/quake1-data )
+       demo? ( games-fps/quake1-demodata )
+       textures? ( >=games-fps/quake1-textures-20050820 )
+       opengl? ( ${UIRDEPEND} )
+       !opengl? ( sdl? ( ${UIRDEPEND} ) )
+       !opengl? ( !sdl? ( !dedicated? ( ${UIRDEPEND} ) ) )
+"
+DEPEND="lights? ( || (
+                       app-arch/unrar
+                       app-arch/rar ) )
+       opengl? (
+               ${UIRDEPEND}
+               ${UIDEPEND} )
+       !opengl? ( sdl? (
+               ${UIRDEPEND}
+               ${UIDEPEND} ) )
+       !opengl? ( !sdl? ( !dedicated? (
+               ${UIRDEPEND}
+               ${UIDEPEND} ) ) )
+       virtual/pkgconfig
+       app-arch/unzip
+"
+
+S="${WORKDIR}/${PN}"
+dir="/usr/share/quake1"
+
+opengl_client() { use opengl || ( ! use dedicated && ! use sdl ) }
+
+src_unpack() {
+       if use lights ; then
+               unpack "${MY_LIGHTS}"
+               unpack_zip "${DISTDIR}"/id1.pk3
+               mv *.lit maps/ || die
+               mv ReadMe.txt rtlights.txt
+       fi
+       unpack "${MY_ENGINE}"
+       unpack ./${PN}*.zip
+}
+
+src_prepare() {
+       default
+
+       rm "${WORKDIR}"/README-SDL.txt
+       cd "${S}"
+       rm mingw_note.txt
+
+       strip-flags
+
+       # Only additional CFLAGS optimization is the -march flag
+       local march=$(get-flag -march)
+       sed -i \
+               -e "s:-lasound:$(pkg-config --libs alsa):" \
+               -e "/^CPUOPTIMIZATIONS/d" \
+               -e '/^OPTIM_RELEASE/s/=.*/=$(CFLAGS)/' \
+               -e '/^OPTIM_DEBUG/s/=.*/=$(CFLAGS)/' \
+               -e '/^LDFLAGS_DEBUG/s/$/ $(LDFLAGS)/' \
+               -e '/^LDFLAGS_RELEASE/s/$/ $(LDFLAGS)/' \
+               -e "s:strip:true:" \
+               makefile.inc || die
+
+       if ! use cdsound ; then
+               # Turn the CD accesses off
+               sed -i \
+                       -e "s:/dev/cdrom:/dev/null:" \
+                       cd_linux.c || die
+               sed -i \
+                       -e 's:COM_CheckParm("-nocdaudio"):1:' \
+                       cd_shared.c || die
+       fi
+}
+
+src_compile() {
+       local opts="DP_FS_BASEDIR=\"${dir}\" DP_LINK_TO_LIBJPEG=1"
+
+       # Preferred sound is alsa
+       local sound_api="NULL"
+       use oss && sound_api="OSS"
+       use alsa && sound_api="ALSA"
+       opts="${opts} DP_SOUND_API=${sound_api}"
+
+       local type="release"
+       use debug && type="debug"
+
+       # Only compile a maximum of 1 client
+       if use sdl ; then
+               emake ${opts} "sdl-${type}"
+       elif opengl_client ; then
+               emake ${opts} "cl-${type}"
+       fi
+
+       if use dedicated ; then
+               emake ${opts} "sv-${type}"
+       fi
+}
+
+src_install() {
+       if opengl_client || use sdl ; then
+               local type=glx
+
+               use sdl && type=sdl
+
+               # darkplaces executable is needed, even just for demo
+               newbin "${PN}-${type}" ${PN}
+               newicon darkplaces72x72.png ${PN}.png
+
+               if use demo ; then
+                       # Install command-line for demo, even if not desktop entry
+                       make_wrapper ${PN}-demo "${PN} -game demo"
+               fi
+
+               if use demo && ! use cdinstall ; then
+                       make_desktop_entry ${PN}-demo "Dark Places (Demo)"
+               else
+                       # Full version takes precedence over demo
+                       make_desktop_entry ${PN} "Dark Places"
+               fi
+       fi
+
+       if use dedicated ; then
+               newbin ${PN}-dedicated ${PN}-ded
+       fi
+
+       dodoc *.txt ChangeLog todo "${WORKDIR}"/*.txt
+
+       if use lights ; then
+               insinto "${dir}"/id1
+               doins -r "${WORKDIR}"/{cubemaps,maps}
+               if use demo ; then
+                       # Set up symlinks, for the demo levels to include the lights
+                       local d
+                       for d in cubemaps maps ; do
+                               dosym "${dir}/id1/${d}" "${dir}/demo/${d}"
+                       done
+               fi
+       fi
+}
+
+pkg_postinst() {
+       if ! use cdinstall && ! use demo ; then
+               elog "Place pak0.pak and pak1.pak in ${dir}/id1"
+       fi
+
+       if use sdl $$ ! use alsa ; then
+               ewarn "Select opengl with alsa, instead of sdl USE flag, for better audio latency."
+       fi
+}