|
|
|
# Copyright 1999-2013 Gentoo Foundation
|
|
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
# $Header: /var/cvsroot/gentoo-x86/games-fps/doomsday/doomsday-1.10.2.ebuild,v 1.7 2013/10/30 19:24:05 mgorny Exp $
|
|
|
|
|
|
|
|
# TODO: fmod support broken (deng_fmod)
|
|
|
|
|
|
|
|
EAPI=5
|
|
|
|
|
|
|
|
PYTHON_COMPAT=( python2_6 python2_7 )
|
|
|
|
inherit python-r1 confutils eutils qt4-r2 games
|
|
|
|
|
|
|
|
DESCRIPTION="A modern gaming engine for Doom, Heretic, and Hexen"
|
|
|
|
HOMEPAGE="http://www.dengine.net/"
|
|
|
|
SRC_URI="mirror://sourceforge/deng/Doomsday%20Engine/${PV}/${P}.tar.gz"
|
|
|
|
|
|
|
|
LICENSE="GPL-2"
|
|
|
|
SLOT="0"
|
|
|
|
KEYWORDS="~amd64 ~x86"
|
|
|
|
IUSE="dedicated fluidsynth openal snowberry +doom demo freedoom heretic hexen resources tools"
|
|
|
|
# we need python at build time, so
|
|
|
|
# snowberry? ( ${PYTHON_REQUIRED_USE} )
|
|
|
|
# could break the build
|
|
|
|
REQUIRED_USE="${PYTHON_REQUIRED_USE}
|
|
|
|
demo? ( doom ) freedoom? ( doom ) resources? ( doom )"
|
|
|
|
|
|
|
|
DEPEND="
|
|
|
|
dev-qt/qtcore:4
|
|
|
|
dev-qt/qtopengl:4
|
|
|
|
dev-qt/qtgui:4
|
|
|
|
net-misc/curl
|
|
|
|
sys-libs/zlib
|
|
|
|
!dedicated? (
|
|
|
|
media-libs/libsdl[joystick,audio]
|
|
|
|
media-libs/sdl-mixer
|
|
|
|
media-libs/libpng:0
|
|
|
|
virtual/opengl
|
|
|
|
virtual/glu
|
|
|
|
x11-libs/libX11
|
|
|
|
x11-libs/libXrandr
|
|
|
|
x11-libs/libXxf86vm
|
|
|
|
)
|
|
|
|
fluidsynth? ( media-sound/fluidsynth )
|
|
|
|
openal? ( media-libs/openal )
|
|
|
|
tools? ( sys-libs/ncurses )"
|
|
|
|
RDEPEND="${DEPEND}
|
|
|
|
!dedicated? (
|
|
|
|
snowberry? (
|
|
|
|
${PYTHON_DEPS}
|
|
|
|
dev-lang/python-exec:0[${PYTHON_USEDEP}]
|
|
|
|
dev-python/wxpython[${PYTHON_USEDEP}]
|
|
|
|
)
|
|
|
|
)"
|
|
|
|
DEPEND="${DEPEND}
|
|
|
|
${PYTHON_DEPS}"
|
|
|
|
PDEPEND="
|
|
|
|
!dedicated? (
|
|
|
|
demo? ( games-fps/doom-data )
|
|
|
|
freedoom? ( games-fps/freedoom )
|
|
|
|
resources? ( games-fps/doomsday-resources )
|
|
|
|
)"
|
|
|
|
|
|
|
|
S=${S}/${PN}
|
|
|
|
|
|
|
|
# disable python-exec:2 support, bug #484424
|
|
|
|
_PYTHON_WANT_PYTHON_EXEC2=0
|
|
|
|
|
|
|
|
pkg_setup() {
|
|
|
|
games_pkg_setup
|
|
|
|
python_export_best
|
|
|
|
}
|
|
|
|
|
|
|
|
src_prepare() {
|
|
|
|
sed -i \
|
|
|
|
-e '/readme.path/s#$$PREFIX#/usr#' \
|
|
|
|
client/client.pro || die "fixing docdir failed!"
|
|
|
|
|
|
|
|
sed -i \
|
|
|
|
-e "/^DENG_BASE_DIR =/s:\$\$PREFIX/share:${GAMES_DATADIR}:" \
|
|
|
|
config_unix.pri || die
|
|
|
|
|
|
|
|
echo "CONFIG += nostrip" > config_user.pri
|
|
|
|
echo "PREFIX=/usr/games" >> config_user.pri
|
|
|
|
|
|
|
|
if use dedicated ; then
|
|
|
|
echo "CONFIG += deng_noclient" >> config_user.pri
|
|
|
|
echo "CONFIG += deng_nosnowberry" >> config_user.pri
|
|
|
|
else
|
|
|
|
use snowberry &&
|
|
|
|
echo "CONFIG += deng_snowberry" >> config_user.pri || \
|
|
|
|
echo "CONFIG += deng_nosnowberry" >> config_user.pri
|
|
|
|
fi
|
|
|
|
|
|
|
|
use fluidsynth &&
|
|
|
|
echo "CONFIG += deng_fluidsynth" >> config_user.pri
|
|
|
|
|
|
|
|
use tools ||
|
|
|
|
echo "CONFIG += deng_notools" >> config_user.pri
|
|
|
|
|
|
|
|
if use openal; then
|
|
|
|
echo "CONFIG += deng_openal" >> config_user.pri
|
|
|
|
sed -i \
|
|
|
|
-e 's:\# Generic Unix.:LIBS += -lopenal:' \
|
|
|
|
dep_openal.pri || die
|
|
|
|
epatch "${FILESDIR}"/${P}-openal-link.patch
|
|
|
|
fi
|
|
|
|
|
|
|
|
qt4-r2_src_prepare
|
|
|
|
}
|
|
|
|
|
|
|
|
#Usage: doom_make_wrapper <name> <game> <icon> <desktop entry title> [args]
|
|
|
|
doom_make_wrapper() {
|
|
|
|
local name=$1 game=$2 icon=$3 de_title=$4
|
|
|
|
shift 4
|
|
|
|
games_make_wrapper $name \
|
|
|
|
"doomsday -game ${game} $@"
|
|
|
|
make_desktop_entry $name "${de_title}" ${icon}
|
|
|
|
}
|
|
|
|
|
|
|
|
src_configure() {
|
|
|
|
qt4-r2_src_configure
|
|
|
|
}
|
|
|
|
|
|
|
|
src_install() {
|
|
|
|
qt4-r2_src_install
|
|
|
|
|
|
|
|
dodoc "${WORKDIR}"/${P}/README.md
|
|
|
|
|
|
|
|
mv "${D}/${GAMES_DATADIR}"/{${PN}/data/jdoom,doom-data} || die
|
|
|
|
dosym "${GAMES_DATADIR}"/doom-data "${GAMES_DATADIR}"/${PN}/data/jdoom
|
|
|
|
|
|
|
|
if use !dedicated ; then
|
|
|
|
if use snowberry ; then
|
|
|
|
python_replicate_script "${D}"/"${GAMES_BINDIR}"/launch-doomsday
|
|
|
|
|
|
|
|
installmodules() {
|
|
|
|
# relocate snowberry module directory recursively into site-packages
|
|
|
|
python_domodule "${D}/${GAMES_DATADIR}"/${PN}/snowberry
|
|
|
|
# hack around improper path handling
|
|
|
|
sed -i \
|
|
|
|
-e "s:os.chdir.*$:os.chdir('$(python_get_sitedir)/snowberry'):" \
|
|
|
|
"${D}"/"${GAMES_BINDIR}"/launch-doomsday-${EPYTHON} || die
|
|
|
|
}
|
|
|
|
python_foreach_impl installmodules
|
|
|
|
# remove old module dir
|
|
|
|
rm -r "${D}/${GAMES_DATADIR}"/${PN}/snowberry || die
|
|
|
|
|
|
|
|
make_desktop_entry launch-doomsday "Snowberry DoomsDay" snowberry
|
|
|
|
doicon ../snowberry/graphics/snowberry.png
|
|
|
|
fi
|
|
|
|
|
|
|
|
if use doom; then
|
|
|
|
local res_arg
|
|
|
|
if use resources; then
|
|
|
|
res_arg="-def \"${GAMES_DATADIR}\"/${PN}/defs/jdoom/jDRP.ded"
|
|
|
|
fi
|
|
|
|
|
|
|
|
doicon ../snowberry/graphics/orb-doom.png
|
|
|
|
doom_make_wrapper jdoom doom1 orb-doom "DoomsDay Engine: Doom 1" "${res_arg}"
|
|
|
|
elog "Created jdoom launcher. To play Doom place your doom.wad to"
|
|
|
|
elog "\"${GAMES_DATADIR}\"/doom-data"
|
|
|
|
elog
|
|
|
|
|
|
|
|
if use demo; then
|
|
|
|
doom_make_wrapper jdoom-demo doom1-share orb-doom "DoomsDay Engine: Doom 1 Demo" \
|
|
|
|
"-iwad \"${GAMES_DATADIR}\"/doom-data/doom1.wad ${res_arg}"
|
|
|
|
fi
|
|
|
|
if use freedoom; then
|
|
|
|
doom_make_wrapper jdoom-freedoom doom1-share orb-doom "DoomsDay Engine: FreeDoom" \
|
|
|
|
"-iwad \"${GAMES_DATADIR}\"/doom-data/freedoom/doom1.wad"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
if use hexen; then
|
|
|
|
doicon ../snowberry/graphics/orb-hexen.png
|
|
|
|
doom_make_wrapper jhexen hexen orb-hexen "DoomsDay Engine: Hexen"
|
|
|
|
|
|
|
|
elog "Created jhexen launcher. To play Hexen place your hexen.wad to"
|
|
|
|
elog "\"${GAMES_DATADIR}\"/${PN}/data/jhexen"
|
|
|
|
elog
|
|
|
|
fi
|
|
|
|
if use heretic; then
|
|
|
|
doicon ../snowberry/graphics/orb-heretic.png
|
|
|
|
doom_make_wrapper jheretic heretic orb-heretic "DoomsDay Engine: Heretic"
|
|
|
|
|
|
|
|
elog "Created jheretic launcher. To play Heretic place your heretic.wad to"
|
|
|
|
elog "\"${GAMES_DATADIR}\"/${PN}/data/jheretic"
|
|
|
|
elog
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
prepgamesdirs
|
|
|
|
}
|