blob: b6f14f7b1d9b28dfacee7d0be88a19a75475a25b [file] [log] [blame]
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
inherit scons-utils qt4-r2 games
DESCRIPTION="An accuracy-focused Gameboy / Gameboy Color emulator"
HOMEPAGE="http://sourceforge.net/projects/gambatte"
SRC_URI="https://dev.gentoo.org/~hasufell/distfiles/${P}.tar.xz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE="qt4 +sdl"
REQUIRED_USE="|| ( qt4 sdl )"
RDEPEND="
sys-libs/zlib
qt4? (
dev-qt/qtcore:4
dev-qt/qtgui:4
dev-qt/qtopengl:4
media-libs/alsa-lib
x11-libs/libX11
x11-libs/libXext
x11-libs/libXrandr
x11-libs/libXv
)
sdl? ( media-libs/libsdl[X,sound,joystick,video] )"
DEPEND="${RDEPEND}
app-arch/xz-utils"
fix_scons() {
local i
for i; do
cat >> $i << END
import os
import SCons.Util
if os.environ.has_key('AR'):
env['AR'] = os.environ['AR']
if os.environ.has_key('RANLIB'):
env['RANLIB'] = os.environ['RANLIB']
if os.environ.has_key('CC'):
env['CC'] = os.environ['CC']
if os.environ.has_key('CFLAGS'):
env['CCFLAGS'] += SCons.Util.CLVar(os.environ['CFLAGS'])
if os.environ.has_key('CXX'):
env['CXX'] = os.environ['CXX']
if os.environ.has_key('CXXFLAGS'):
env['CXXFLAGS'] += SCons.Util.CLVar(os.environ['CXXFLAGS'])
if os.environ.has_key('CPPFLAGS'):
env['CCFLAGS'] += SCons.Util.CLVar(os.environ['CPPFLAGS'])
if os.environ.has_key('LDFLAGS'):
env['LINKFLAGS'] += SCons.Util.CLVar(os.environ['LDFLAGS'])
END
done
}
src_prepare() {
# Fix zlib/minizip build error
sed -i \
-e '1i#define OF(x) x' \
libgambatte/src/file/unzip/{unzip,ioapi}.h \
|| die "sed iompi.h failed"
fix_scons {gambatte_sdl,libgambatte}/SConstruct
}
src_compile() {
# build core library
cd "${S}"/libgambatte || die
escons
# build sdl frontend
if use sdl; then
cd "${S}"/gambatte_sdl || die
escons
fi
# build qt frontend
if use qt4; then
cd "${S}"/gambatte_qt || die
eqmake4 ${PN}_qt.pro
emake
fi
}
src_install() {
use sdl && dogamesbin gambatte_sdl/gambatte_sdl
use qt4 && dogamesbin gambatte_qt/bin/gambatte_qt
dodoc README changelog
prepgamesdirs
}