You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

108 lines
2.4 KiB

# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit desktop check-reqs toolchain-funcs xdg
DESCRIPTION="Fork of Nexuiz, Deathmatch FPS based on DarkPlaces, an advanced Quake 1 engine"
HOMEPAGE="https://xonotic.org/"
SRC_URI="https://dl.xonotic.org/${P}.zip"
S="${WORKDIR}/${PN^}"
LICENSE="GPL-3+ GPL-2+"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~x86"
IUSE="X +alsa ode +sdl"
# note: many dependencies are used through dlopen()
COMMON_UIDEPEND="
media-libs/libogg
media-libs/libtheora
media-libs/libvorbis"
RDEPEND="
dev-libs/d0_blind_id
media-libs/libjpeg-turbo:=
media-libs/libpng
media-libs/freetype:2
net-misc/curl
sys-libs/zlib:=
X? (
${COMMON_UIDEPEND}
media-libs/libglvnd[X]
x11-libs/libX11
x11-libs/libXext
x11-libs/libXpm
x11-libs/libXxf86vm
alsa? ( media-libs/alsa-lib )
)
ode? ( dev-games/ode:=[double-precision] )
sdl? (
${COMMON_UIDEPEND}
media-libs/libsdl2[joystick,opengl,sound,video]
)"
DEPEND="
${RDEPEND}
X? ( x11-base/xorg-proto )"
BDEPEND="app-arch/unzip"
CHECKREQS_DISK_BUILD="1500M"
CHECKREQS_DISK_USR="1200M"
src_prepare() {
default
sed -e 's|-O3 ||' \
-e '/^LDFLAGS_RELEASE/s/$(OPTIM_RELEASE)/$(GENTOO_LDFLAGS)/' \
-i source/darkplaces/makefile.inc || die
}
src_compile() {
tc-export CC
# do not pass in array to keep the makefile.inc's += flags
local -x CPUOPTIMIZATIONS=${CFLAGS}
local emakeargs=(
-C source/darkplaces
DEFAULT_SNDAPI=$(usex alsa ALSA OSS)
DP_FS_BASEDIR="${EPREFIX}"/usr/share/${PN}
DP_LINK_ODE=$(usex ode shared no)
STRIP=:
GENTOO_LDFLAGS="${LDFLAGS}"
)
# split for bug 473352
emake "${emakeargs[@]}" sv-release
use X && emake "${emakeargs[@]}" cl-release
use sdl && emake "${emakeargs[@]}" sdl-release
}
src_install() {
newbin {source/darkplaces/darkplaces,${PN}}-dedicated
if use X || use sdl; then
if use X; then
newbin {source/darkplaces/darkplaces,${PN}}-glx
domenu misc/logos/${PN}-glx.desktop
fi
if use sdl; then
newbin {source/darkplaces/darkplaces,${PN}}-sdl
domenu misc/logos/${PN}.desktop
fi
local size
for size in 16 22 24 32 48 128 256 512; do
newicon -s ${size} misc/logos/icons_png/${PN}_${size}.png ${PN}.png
done
newicon -s scalable misc/logos/${PN}_icon.svg ${PN}.svg
fi
dodoc Docs/*.{md,txt}
insinto /usr/share/${PN}
doins -r key_0.d0pk server data
rm "${ED}"/usr/share/${PN}/server/.gitattributes || die
}