# Copyright 1999-2017 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 EAPI=5 inherit eutils gnome2-utils toolchain-funcs qmake-utils games MY_P=${PN}_v${PV}-source DESCRIPTION="A Nintendo multi-system emulator formerly known as bsnes" HOMEPAGE="http://byuu.org/higan/ https://code.google.com/p/higan/" SRC_URI="http://download.byuu.org/${MY_P}.7z" LICENSE="GPL-3" SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="ao +alsa +icarus openal opengl oss pulseaudio +sdl udev xv" REQUIRED_USE="|| ( ao openal alsa pulseaudio oss ) || ( xv opengl sdl )" RDEPEND=" x11-libs/gtk+:2 x11-libs/libX11 x11-libs/libXext icarus? ( x11-libs/gtksourceview:2.0 x11-libs/gtk+:2 x11-libs/pango dev-libs/atk x11-libs/cairo x11-libs/gdk-pixbuf dev-libs/glib:2 media-libs/fontconfig media-libs/freetype ) ao? ( media-libs/libao ) openal? ( media-libs/openal ) alsa? ( media-libs/alsa-lib ) pulseaudio? ( media-sound/pulseaudio ) xv? ( x11-libs/libXv ) opengl? ( virtual/opengl ) sdl? ( media-libs/libsdl[X,joystick,video] ) udev? ( virtual/udev ) " DEPEND="${RDEPEND} app-arch/p7zip virtual/pkgconfig" S=${WORKDIR}/${MY_P} disable_module() { sed -i \ -e "s|$1\b||" \ "${S}"/higan/target-tomoko/GNUmakefile || die } src_prepare() { epatch "${FILESDIR}"/${P}-QA.patch sed -i \ -e "/handle/s#/usr/local/lib#/usr/$(get_libdir)#" \ nall/dl.hpp || die "fixing libdir failed!" # audio modules use ao || disable_module audio.ao use openal || disable_module audio.openal use pulseaudio || { disable_module audio.pulseaudio disable_module audio.pulseaudiosimple ;} use oss || disable_module audio.oss use alsa || disable_module audio.alsa # video modules use opengl || disable_module video.glx use xv || disable_module video.xv use sdl || disable_module video.sdl # input modules use sdl || disable_module input.sdl use udev || disable_module input.udev } src_compile() { local mytoolkit mytoolkit="gtk" if use icarus; then cd "${S}/icarus" || die emake \ platform="linux" \ compiler="$(tc-getCXX)" fi cd "${S}/higan" || die emake \ platform="linux" \ compiler="$(tc-getCXX)" \ hiro="${mytoolkit}" sed \ -e "s:%GAMES_DATADIR%:${GAMES_DATADIR}:" \ < "${FILESDIR}"/${PN}-wrapper \ > out/${PN}-wrapper || die "generating wrapper failed!" } src_install() { if use icarus; then newgamesbin "${S}"/icarus/out/icarus icarus fi newgamesbin "${S}"/higan/out/${PN} ${PN}.bin newgamesbin "${S}"/higan/out/${PN}-wrapper ${PN} make_desktop_entry "${PN}" "${PN}" # copy home directory stuff to a global location insinto "${GAMES_DATADIR}"/${PN} doins -r higan/data/cheats.bml higan/profile/* doicon -s 512 higan/data/${PN}.png prepgamesdirs } pkg_preinst() { games_pkg_preinst gnome2_icon_savelist } pkg_postinst() { #elog "optional dependencies:" #elog " dev-games/higan-ananke (extra rom load options)" #elog " games-util/higan-purify (Rom purifier)" games_pkg_postinst gnome2_icon_cache_update } pkg_postrm() { gnome2_icon_cache_update }