blob: 69b9bbd96d143c7a110e413428281f6677231c18 [file] [log] [blame]
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
inherit cmake-utils eutils multilib toolchain-funcs flag-o-matic games
DESCRIPTION="Battle for Wesnoth - A fantasy turn-based strategy game"
HOMEPAGE="http://www.wesnoth.org/"
SRC_URI="mirror://sourceforge/wesnoth/${P}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 ~ppc ~ppc64 ~x86 ~x86-fbsd"
IUSE="dbus dedicated doc fribidi nls server"
RDEPEND=">=media-libs/libsdl-1.2.7:0[joystick,video,X]
media-libs/sdl-net
!dedicated? (
>=media-libs/sdl-ttf-2.0.8
>=media-libs/sdl-mixer-1.2[vorbis]
>=media-libs/sdl-image-1.2[jpeg,png]
fribidi? ( dev-libs/fribidi )
dbus? ( sys-apps/dbus )
sys-libs/zlib
x11-libs/pango
dev-lang/lua:0
media-libs/fontconfig
)
>=dev-libs/boost-1.48:=[nls,threads]
virtual/libintl"
DEPEND="${RDEPEND}
virtual/pkgconfig
sys-devel/gettext"
src_prepare() {
if use dedicated || use server ; then
sed \
-e "s:GAMES_BINDIR:${GAMES_BINDIR}:" \
-e "s:GAMES_STATEDIR:${GAMES_STATEDIR}:" \
-e "s/GAMES_USER_DED/${GAMES_USER_DED}/" \
-e "s/GAMES_GROUP/${GAMES_GROUP}/" "${FILESDIR}"/wesnothd.rc \
> "${T}"/wesnothd || die
fi
if ! use doc ; then
sed -i \
-e '/manual/d' \
doc/CMakeLists.txt || die
fi
# bug #472994
mv icons/wesnoth-icon-Mac.png icons/wesnoth-icon.png || die
mv icons/map-editor-icon-Mac.png icons/wesnoth_editor-icon.png || die
# respect LINGUAS (bug #483316)
if [[ ${LINGUAS+set} ]] ; then
local langs
for lang in $(cat po/LINGUAS)
do
has $lang $LINGUAS && langs+="$lang "
done
echo "$langs" > po/LINGUAS || die
fi
}
src_configure() {
filter-flags -ftracer -fomit-frame-pointer
if [[ $(gcc-major-version) -eq 3 ]] ; then
filter-flags -fstack-protector
append-flags -fno-stack-protector
fi
# Work around eclass
append-flags -UNDEBUG
if use dedicated || use server ; then
mycmakeargs=(
"-DENABLE_CAMPAIGN_SERVER=TRUE"
"-DENABLE_SERVER=TRUE"
"-DSERVER_UID=${GAMES_USER_DED}"
"-DSERVER_GID=${GAMES_GROUP}"
"-DFIFO_DIR=${GAMES_STATEDIR}/run/wesnothd"
)
else
mycmakeargs=(
$(cmake-utils_use_enable fribidi FRIBIDI)
"-DENABLE_CAMPAIGN_SERVER=FALSE"
"-DENABLE_SERVER=FALSE"
)
fi
mycmakeargs+=(
$(cmake-utils_use_enable !dedicated GAME)
$(cmake-utils_use_enable !dedicated ENABLE_DESKTOP_ENTRY)
$(cmake-utils_use_enable nls NLS)
$(cmake-utils_use_enable dbus NOTIFICATIONS)
"-DCMAKE_VERBOSE_MAKEFILE=TRUE"
"-DENABLE_STRICT_COMPILATION=FALSE"
"-DCMAKE_INSTALL_PREFIX=${GAMES_PREFIX}"
"-DDATAROOTDIR=${GAMES_DATADIR}"
"-DBINDIR=${GAMES_BINDIR}"
"-DICONDIR=/usr/share/pixmaps"
"-DDESKTOPDIR=/usr/share/applications"
"-DLOCALEDIR=/usr/share/locale"
"-DMANDIR=/usr/share/man"
"-DDOCDIR=/usr/share/doc/${PF}"
)
cmake-utils_src_configure
}
src_compile() {
cmake-utils_src_compile
}
src_install() {
DOCS="README.md changelog players_changelog" cmake-utils_src_install
if use dedicated || use server; then
keepdir "${GAMES_STATEDIR}/run/wesnothd"
doinitd "${T}"/wesnothd
fi
prepgamesdirs
}