summaryrefslogtreecommitdiff
path: root/games-emulation/higan
diff options
context:
space:
mode:
Diffstat (limited to 'games-emulation/higan')
-rw-r--r--games-emulation/higan/Manifest6
-rw-r--r--games-emulation/higan/files/higan-106_p1-QA.patch117
-rw-r--r--games-emulation/higan/files/higan-106_p1-header-locations.patch24
-rw-r--r--games-emulation/higan/files/higan-106_p1-wrapper5
-rw-r--r--games-emulation/higan/higan-106_p1-r1.ebuild138
-rw-r--r--games-emulation/higan/metadata.xml12
6 files changed, 302 insertions, 0 deletions
diff --git a/games-emulation/higan/Manifest b/games-emulation/higan/Manifest
new file mode 100644
index 000000000000..937ad0d49b76
--- /dev/null
+++ b/games-emulation/higan/Manifest
@@ -0,0 +1,6 @@
+AUX higan-106_p1-QA.patch 3708 BLAKE2B 25f3707c4336e423017eb879e9dfc02fee9660ee8c5e8390813906614eab8fd4306eabbe15e4330f7f00efed0231a335ec83a3682eb338bdc3f772546fd5d9b7 SHA512 ba5bf66a242baf7b2385ffd7a26c5a180589f917b5a636fa99dd488b4a733c09e6e3eb3ccc013b63817661c498149d943a53d3e536674251ae94f352516a4f44
+AUX higan-106_p1-header-locations.patch 598 BLAKE2B d7935edf4f241802ffc5200f8b4944fe1dff4596941993c7539e290f1640eb5e552a263d1a8d0c6db6b2d909b35bc34350aa84a4ba7ea9f8fb06d8466c59a673 SHA512 756893707d9048bf9f34818733ab812d7a81da329646c77536fc6feef74e97b6e3804dfdfd062e5899bba30c70343afdd3b62a5dfd1b79488b7fdec7bde57a91
+AUX higan-106_p1-wrapper 166 BLAKE2B 87659c19e485a4eca90178a9c2faf96214af7a13fb16c04a2175f3157dd4b522e6414fed9216a9acb293111f2f994837a9a496075ab0bebd2c78e3a5710330a4 SHA512 db297cfc9b6f5ff1553b52587a9988af46ad7d2aadbaa17743676250679e2bada68d97f85e934ce8c1eb7f57ac3f18c43a33eaca809a1f10f5a4f22c8cbe137a
+DIST higan-106_p1.tar.bz2 954533 BLAKE2B e7ea44f97f7e2c3ce86b57b853aa59c4372f37185846f8a928ba659b525965aed39f7859721394a776990e53e2f671fc0e7071d17f9397973343d9a7adcf70ac SHA512 f4d8dbfacaa20b948bd382fd0ef48e89cbb21a0569a70b6a4beca6c0a2ba404efc4c28d14bfd3df14d4fd76c763ca1537166bb24d765a8da33423bbea32df4c3
+EBUILD higan-106_p1-r1.ebuild 3213 BLAKE2B 0b7dfc5a07055b96c3d8cbd4c936acf6137bcc77d6f906c675910f3e426c169636752d1f9cf33452af2156d345976e4003168377bca172302624d253db7e8519 SHA512 ac879d774978c2804c067e2434296e6d9ed42da7d37dbd2c332506c5eded6cbabe6bd8fe3b07597036bcd3fe784b463442e53d3d389758c0af9f43ed108d7a96
+MISC metadata.xml 377 BLAKE2B aefc33327d342c730de8b2bdd95c2299692c894fd67a3f43d378964e7b776e467d2a4644777e7c8a1eb94b41ee300a65cad084decf64fc02abbac8c02de509c1 SHA512 2faa3ffcca01d5740a5ca1c4f554c51e90e81c6c19cde15cf817c448debb5585e09a1b784d94e3ecd06321ed28a740ce846f1afbd149bce590ca69ef5b1ce9f4
diff --git a/games-emulation/higan/files/higan-106_p1-QA.patch b/games-emulation/higan/files/higan-106_p1-QA.patch
new file mode 100644
index 000000000000..140fdf9a48e7
--- /dev/null
+++ b/games-emulation/higan/files/higan-106_p1-QA.patch
@@ -0,0 +1,117 @@
+From 3ca37e53f22bfbb4ef436829904dc75b1f4940ec Mon Sep 17 00:00:00 2001
+From: Sebastian Pipping <sebastian@pipping.org>
+Date: Sun, 21 Jan 2018 11:16:53 +0100
+Subject: [PATCH] Quickport higan-099-QA.patch to v106r1
+
+---
+ higan/GNUmakefile | 5 ++---
+ higan/target-tomoko/GNUmakefile | 6 +++---
+ icarus/GNUmakefile | 4 ++--
+ nall/GNUmakefile | 19 -------------------
+ 4 files changed, 7 insertions(+), 27 deletions(-)
+
+diff --git a/higan/GNUmakefile b/higan/GNUmakefile
+index 5eac824..2616ed1 100644
+--- a/higan/GNUmakefile
++++ b/higan/GNUmakefile
+@@ -26,7 +26,6 @@ else ifneq ($(filter $(platform),linux bsd),)
+ flags += -fopenmp
+ link += -fopenmp
+ ifeq ($(binary),application)
+- flags += -march=native
+ link += -Wl,-export-dynamic
+ link += -lX11 -lXext
+ else ifeq ($(binary),library)
+@@ -40,9 +39,9 @@ endif
+ compile = \
+ $(strip \
+ $(if $(filter %.c,$<), \
+- $(compiler) $(cflags) $(flags) $1 -c $< -o $@, \
++ $(compiler) $(cflags) $(flags) $(CFLAGS) $1 -c $< -o $@, \
+ $(if $(filter %.cpp,$<), \
+- $(compiler) $(cppflags) $(flags) $1 -c $< -o $@ \
++ $(compiler) $(cppflags) $(flags) $(CXXFLAGS) $1 -c $< -o $@ \
+ ) \
+ ) \
+ )
+diff --git a/higan/target-tomoko/GNUmakefile b/higan/target-tomoko/GNUmakefile
+index bfdcbe2..bdb6d44 100644
+--- a/higan/target-tomoko/GNUmakefile
++++ b/higan/target-tomoko/GNUmakefile
+@@ -48,10 +48,10 @@ objects := $(ui_objects) $(objects)
+ objects := $(patsubst %,obj/%.o,$(objects))
+
+ obj/ruby.o: ../ruby/ruby.cpp $(call rwildcard,../ruby/)
+- $(compiler) $(rubyflags) -c $< -o $@
++ $(compiler) $(rubyflags) $(CXXFLAGS) -c $< -o $@
+
+ obj/hiro.o: ../hiro/hiro.cpp $(call rwildcard,../hiro/)
+- $(compiler) $(hiroflags) -c $< -o $@
++ $(compiler) $(hiroflags) $(CXXFLAGS) -c $< -o $@
+
+ obj/ui-tomoko.o: $(ui)/tomoko.cpp $(call rwildcard,$(ui)/)
+ obj/ui-program.o: $(ui)/program/program.cpp $(call rwildcard,$(ui)/)
+@@ -67,7 +67,7 @@ obj/ui-resource.o:
+
+ # targets
+ build: $(objects)
+- $(strip $(compiler) -o out/$(name) $(objects) $(link))
++ $(strip $(compiler) $(CXXFLAGS) -o out/$(name) $(objects) $(link))
+ ifeq ($(platform),macos)
+ @if [ -d out/$(name).app ]; then rm -r out/$(name).app; fi
+ mkdir -p out/$(name).app/Contents/MacOS/
+diff --git a/icarus/GNUmakefile b/icarus/GNUmakefile
+index d01465e..999c004 100644
+--- a/icarus/GNUmakefile
++++ b/icarus/GNUmakefile
+@@ -3,7 +3,7 @@ include ../nall/GNUmakefile
+ include ../hiro/GNUmakefile
+
+ name := icarus
+-flags += -I..
++flags += -I.. $(CXXFLAGS)
+ link +=
+
+ ifeq ($(platform),windows)
+@@ -15,7 +15,7 @@ objects += obj/icarus.o
+ objects += $(if $(call streq,$(platform),windows),obj/resource.o)
+
+ all: $(objects)
+- $(strip $(compiler) -o out/$(name) $(objects) $(link) $(hirolink))
++ $(strip $(compiler) -o out/$(name) $(objects) $(link) $(hirolink) $(LDFLAGS))
+ ifeq ($(platform),macos)
+ @if [ -d out/$(name).app ]; then rm -r out/$(name).app; fi
+ mkdir -p out/$(name).app/Contents/MacOS/
+diff --git a/nall/GNUmakefile b/nall/GNUmakefile
+index f9865de..f864cde 100644
+--- a/nall/GNUmakefile
++++ b/nall/GNUmakefile
+@@ -59,25 +59,6 @@ ifeq ($(compiler),)
+ endif
+ endif
+
+-# build settings
+-ifeq ($(build),optimize)
+- flags += -O3
+-else ifeq ($(build),release)
+- flags += -O2
+-else ifeq ($(build),stable)
+- flags += -O1
+-else ifeq ($(build),debug)
+- flags += -g
+-else ifeq ($(build),profile)
+- flags += -pg
+- link += -pg
+-else ifeq ($(build),instrument)
+- flags += -O3 -fprofile-generate
+- link += -lgcov
+-else ifeq ($(build),optimize)
+- flags += -O3 -fprofile-use
+-endif
+-
+ # clang settings
+ ifeq ($(findstring clang++,$(compiler)),clang++)
+ flags += -fno-strict-aliasing -fwrapv
+--
+2.16.0.rc2
+
diff --git a/games-emulation/higan/files/higan-106_p1-header-locations.patch b/games-emulation/higan/files/higan-106_p1-header-locations.patch
new file mode 100644
index 000000000000..7f72a1311491
--- /dev/null
+++ b/games-emulation/higan/files/higan-106_p1-header-locations.patch
@@ -0,0 +1,24 @@
+From 420b10135f678367560621416799c48af0ef3764 Mon Sep 17 00:00:00 2001
+From: Sebastian Pipping <sebastian@pipping.org>
+Date: Sun, 21 Jan 2018 11:44:22 +0100
+Subject: [PATCH] Patch header locations for Gentoo
+
+---
+ nall/GNUmakefile | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/nall/GNUmakefile b/nall/GNUmakefile
+index f864cde..41fdc08 100644
+--- a/nall/GNUmakefile
++++ b/nall/GNUmakefile
+@@ -82,6 +82,7 @@ endif
+
+ # linux settings
+ ifeq ($(platform),linux)
++ flags += -I/usr/include/cairo/ -I/usr/include/gtk-2.0/ -I/usr/include/gtksourceview-2.0/
+ link += -ldl
+ endif
+
+--
+2.16.0.rc2
+
diff --git a/games-emulation/higan/files/higan-106_p1-wrapper b/games-emulation/higan/files/higan-106_p1-wrapper
new file mode 100644
index 000000000000..1de577fd1923
--- /dev/null
+++ b/games-emulation/higan/files/higan-106_p1-wrapper
@@ -0,0 +1,5 @@
+#!/bin/sh
+set -e
+[ -e "${HOME}"/.local/share/higan ] || mkdir "${HOME}"/.local/share/higan
+cp -ru /usr/share/higan/* "${HOME}"/.local/share/higan/
+exec ${0}.bin "$@"
diff --git a/games-emulation/higan/higan-106_p1-r1.ebuild b/games-emulation/higan/higan-106_p1-r1.ebuild
new file mode 100644
index 000000000000..a39e0db7e729
--- /dev/null
+++ b/games-emulation/higan/higan-106_p1-r1.ebuild
@@ -0,0 +1,138 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils gnome2-utils toolchain-funcs qmake-utils
+
+MY_COMMIT=41efdba45afa770db99bc7484a8ad340ccc597d2
+
+DESCRIPTION="A multi-system game emulator formerly known as bsnes"
+HOMEPAGE="https://byuu.org/emulation/higan/ https://gitlab.com/higan/higan"
+SRC_URI="https://gitlab.com/higan/higan/repository/${MY_COMMIT}/archive.tar.bz2 -> ${P}.tar.bz2"
+
+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}/${PN}-${MY_COMMIT}-${MY_COMMIT}
+
+disable_module() {
+ sed -i \
+ -e "s|$1\b||" \
+ "${S}"/higan/target-tomoko/GNUmakefile || die
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-header-locations.patch
+ epatch "${FILESDIR}"/${P}-QA.patch
+
+ sed -i \
+ -e "/handle/s#/usr/local/lib#/usr/$(get_libdir)#" \
+ nall/dl.hpp || die "fixing libdir failed!"
+
+ eapply_user
+
+ # 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.xvideo
+ 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"
+
+ # Needed for fluent audio (even on i5 hardware)
+ export CFLAGS="${CFLAGS} -O3"
+ export CXXFLAGS="${CXXFLAGS} -O3"
+
+ 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}"
+}
+
+src_install() {
+ if use icarus; then
+ newbin "${S}"/icarus/out/icarus icarus
+ fi
+ newbin "${S}"/higan/out/${PN} ${PN}.bin
+ newbin "${FILESDIR}"/${P}-wrapper ${PN}
+ make_desktop_entry "${PN}" "${PN}"
+
+ # copy home directory stuff to a global location (matching "${FILESDIR}"/${P}-wrapper)
+ insinto /usr/share/${PN}
+ doins -r higan/systems/*.sys
+
+ doicon -s 512 higan/data/${PN}.png
+ doicon higan/data/${PN}.svg
+}
+
+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)"
+
+ gnome2_icon_cache_update
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+}
diff --git a/games-emulation/higan/metadata.xml b/games-emulation/higan/metadata.xml
new file mode 100644
index 000000000000..5bef912000c6
--- /dev/null
+++ b/games-emulation/higan/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>games@gentoo.org</email>
+ <name>Gentoo Games Project</name>
+ </maintainer>
+ <use>
+ <flag name="icarus">Build icarus library manager</flag>
+ <flag name="udev">Enable udev based input</flag>
+ </use>
+</pkgmetadata>