mirror of
https://github.com/gryf/gryf-overlay.git
synced 2026-03-29 00:03:33 +01:00
Moved sdlmame to overlay
This commit is contained in:
1
games-emulation/sdlmame/Manifest
Normal file
1
games-emulation/sdlmame/Manifest
Normal file
@@ -0,0 +1 @@
|
|||||||
|
DIST mame-0.174.zip 95944685 BLAKE2B e97027edf7be293e599499bd428c663c1fc13498e2fe10ee356aa56ef8ba85d6ea003ba65a8cbc41d1159246eed354585fc18bf9507b47dc1774b87f5737b48d SHA512 9db4d98fb5f5373529808f3bc41fddefa65ebbf7c26d946ebf886cab25e5abf7c4d539d96dfd6af5e62f4366b2bb0b0b59d40fe7a722698f3707eb8ea4c12a0b
|
||||||
28
games-emulation/sdlmame/files/sdlmame-0.174-cxx14.patch
Normal file
28
games-emulation/sdlmame/files/sdlmame-0.174-cxx14.patch
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# work around gcc-4.9.3's implementation of cxx14
|
||||||
|
# bug 582576 with patch from Alexander Miller
|
||||||
|
# https://bugs.gentoo.org/show_bug.cgi?id=582576
|
||||||
|
|
||||||
|
--- a/src/lib/util/strformat.h
|
||||||
|
+++ b/src/lib/util/strformat.h
|
||||||
|
@@ -185,9 +185,8 @@
|
||||||
|
#include <type_traits>
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
|
-#if defined(__GLIBCXX__) && (__GLIBCXX__ < 20150413)
|
||||||
|
-namespace std
|
||||||
|
-{
|
||||||
|
+namespace std {
|
||||||
|
+namespace mame_cxx14_compat {
|
||||||
|
template<class _Container>
|
||||||
|
inline constexpr auto
|
||||||
|
cbegin(const _Container& __cont) noexcept(noexcept(std::begin(__cont)))-> decltype(std::begin(__cont))
|
||||||
|
@@ -198,7 +197,8 @@
|
||||||
|
cend(const _Container& __cont) noexcept(noexcept(std::end(__cont)))-> decltype(std::end(__cont))
|
||||||
|
{ return std::end(__cont); }
|
||||||
|
}
|
||||||
|
-#endif
|
||||||
|
+using namespace mame_cxx14_compat;
|
||||||
|
+}
|
||||||
|
|
||||||
|
namespace util {
|
||||||
|
namespace detail {
|
||||||
29
games-emulation/sdlmame/files/sdlmame-0.174-qt.patch
Normal file
29
games-emulation/sdlmame/files/sdlmame-0.174-qt.patch
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
No point in adding qt-related things to the compile line unless the qt debugger is wanted
|
||||||
|
|
||||||
|
--- scripts/src/osd/sdl_cfg.lua.orig
|
||||||
|
+++ scripts/src/osd/sdl_cfg.lua
|
||||||
|
@@ -115,14 +115,16 @@
|
||||||
|
configuration { }
|
||||||
|
|
||||||
|
elseif _OPTIONS["targetos"]=="linux" then
|
||||||
|
- if _OPTIONS["QT_HOME"]~=nil then
|
||||||
|
- buildoptions {
|
||||||
|
- "-I" .. backtick(_OPTIONS["QT_HOME"] .. "/bin/qmake -query QT_INSTALL_HEADERS"),
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
- buildoptions {
|
||||||
|
- backtick("pkg-config --cflags Qt5Widgets"),
|
||||||
|
- }
|
||||||
|
+ if _OPTIONS["USE_QTDEBUG"]=="1" then
|
||||||
|
+ if _OPTIONS["QT_HOME"]~=nil then
|
||||||
|
+ buildoptions {
|
||||||
|
+ "-I" .. backtick(_OPTIONS["QT_HOME"] .. "/bin/qmake -query QT_INSTALL_HEADERS"),
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ buildoptions {
|
||||||
|
+ backtick("pkg-config --cflags Qt5Widgets"),
|
||||||
|
+ }
|
||||||
|
+ end
|
||||||
|
end
|
||||||
|
elseif _OPTIONS["targetos"]=="macosx" then
|
||||||
|
defines {
|
||||||
9
games-emulation/sdlmame/files/vector.ini
Normal file
9
games-emulation/sdlmame/files/vector.ini
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#
|
||||||
|
# Specific options file for vector games
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# VIDEO OPTIONS
|
||||||
|
#
|
||||||
|
video soft
|
||||||
|
yuvmode yv12
|
||||||
30
games-emulation/sdlmame/metadata.xml
Normal file
30
games-emulation/sdlmame/metadata.xml
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?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>
|
||||||
|
<longdescription>
|
||||||
|
SDLMAME is a port of the popular MAME[tm]. There are a few principles that guide it's development:
|
||||||
|
|
||||||
|
1) run on Linux/Unix, Mac OS X, and other SDL supported operating systems with as few changes as
|
||||||
|
possible to the base Win32 code. This means we can track changes faster than larger more conventional
|
||||||
|
ports such as MacMAME, and we also maintain what I call "Firefox compatibilty" where learning a major
|
||||||
|
app only needs to be done once per application, and it then applies across many operating systems. If
|
||||||
|
you can use the command-line Win32 MAME, you already know how to use SDLMAME on any platform you may
|
||||||
|
encounter it on.
|
||||||
|
|
||||||
|
2) MAME developers are important. By keeping quickly up to date, we make it easy for people on
|
||||||
|
non-Windows platforms to make and submit changes to the core MAME code, and we offer native
|
||||||
|
implementations of MAME's multi-window GUI debugger on both Linux/Unix and Mac OS X.
|
||||||
|
</longdescription>
|
||||||
|
<use>
|
||||||
|
<flag name="arcade">Enable the Multiple Arcade Machine Emulator for arcade games support</flag>
|
||||||
|
<flag name="tools">Build development tools shared between sdlmame and sdlmess</flag>
|
||||||
|
<flag name="mess">Enable the Multi Emulator Super System for game system support</flag>
|
||||||
|
</use>
|
||||||
|
<upstream>
|
||||||
|
<remote-id type="github">mamedev/mame</remote-id>
|
||||||
|
</upstream>
|
||||||
|
</pkgmetadata>
|
||||||
234
games-emulation/sdlmame/sdlmame-0.174.ebuild
Normal file
234
games-emulation/sdlmame/sdlmame-0.174.ebuild
Normal file
@@ -0,0 +1,234 @@
|
|||||||
|
# Copyright 1999-2016 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=5
|
||||||
|
PYTHON_COMPAT=( python2_7 )
|
||||||
|
inherit eutils python-any-r1 toolchain-funcs qmake-utils games
|
||||||
|
|
||||||
|
MY_PV="${PV/.}"
|
||||||
|
|
||||||
|
DESCRIPTION="Multiple Arcade Machine Emulator + Multi Emulator Super System (MESS)"
|
||||||
|
HOMEPAGE="http://mamedev.org/"
|
||||||
|
SRC_URI="https://github.com/mamedev/mame/releases/download/mame${MY_PV}/mame${MY_PV}s.zip -> mame-${PV}.zip"
|
||||||
|
|
||||||
|
LICENSE="GPL-2+ BSD-2 MIT CC0-1.0"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64 ~x86"
|
||||||
|
IUSE="alsa +arcade debug +mess opengl openmp tools"
|
||||||
|
REQUIRED_USE="|| ( arcade mess )"
|
||||||
|
|
||||||
|
# MESS (games-emulation/sdlmess) has been merged into MAME upstream since mame-0.162 (see below)
|
||||||
|
# MAME/MESS build combined (default) +arcade +mess (mame)
|
||||||
|
# MAME build only +arcade -mess (mamearcade)
|
||||||
|
# MESS build only -arcade +mess (mess)
|
||||||
|
# games-emulation/sdlmametools is dropped and enabled instead by the 'tools' useflag
|
||||||
|
RDEPEND="!games-emulation/sdlmametools
|
||||||
|
!games-emulation/sdlmess
|
||||||
|
dev-db/sqlite:3
|
||||||
|
dev-libs/expat
|
||||||
|
media-libs/fontconfig
|
||||||
|
media-libs/flac
|
||||||
|
media-libs/libsdl2[joystick,opengl?,sound,video,X]
|
||||||
|
media-libs/portaudio
|
||||||
|
media-libs/sdl2-ttf
|
||||||
|
sys-libs/zlib
|
||||||
|
virtual/jpeg:0
|
||||||
|
virtual/opengl
|
||||||
|
alsa? ( media-libs/alsa-lib
|
||||||
|
media-libs/portmidi )
|
||||||
|
debug? ( dev-qt/qtcore:5
|
||||||
|
dev-qt/qtgui:5
|
||||||
|
dev-qt/qtwidgets:5 )
|
||||||
|
x11-libs/libX11
|
||||||
|
x11-libs/libXinerama
|
||||||
|
${PYTHON_DEPS}"
|
||||||
|
DEPEND="${RDEPEND}
|
||||||
|
${PYTHON_DEPS}
|
||||||
|
app-arch/unzip
|
||||||
|
virtual/pkgconfig
|
||||||
|
x11-proto/xineramaproto"
|
||||||
|
|
||||||
|
S=${WORKDIR}
|
||||||
|
|
||||||
|
# Function to disable a makefile option
|
||||||
|
disable_feature() {
|
||||||
|
sed -i -e "/^[ ]*$1.*=/s:^:# :" makefile || die
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to enable a makefile option
|
||||||
|
enable_feature() {
|
||||||
|
sed -i -e "/^#.*$1.*=/s:^#[ ]*::" makefile || die
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
games_pkg_setup
|
||||||
|
python-any-r1_pkg_setup
|
||||||
|
}
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
default
|
||||||
|
unpack ./mame.zip
|
||||||
|
rm -f mame.zip || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
epatch \
|
||||||
|
"${FILESDIR}"/${P}-qt.patch \
|
||||||
|
"${FILESDIR}"/${P}-cxx14.patch
|
||||||
|
# Disable using bundled libraries
|
||||||
|
enable_feature USE_SYSTEM_LIB_EXPAT
|
||||||
|
enable_feature USE_SYSTEM_LIB_FLAC
|
||||||
|
enable_feature USE_SYSTEM_LIB_JPEG
|
||||||
|
# Use bundled lua for now to ensure correct compilation (ref. b.g.o #407091)
|
||||||
|
# enable_feature USE_SYSTEM_LIB_LUA
|
||||||
|
enable_feature USE_SYSTEM_LIB_PORTAUDIO
|
||||||
|
enable_feature USE_SYSTEM_LIB_SQLITE3
|
||||||
|
enable_feature USE_SYSTEM_LIB_ZLIB
|
||||||
|
|
||||||
|
# Disable warnings being treated as errors and enable verbose build output
|
||||||
|
enable_feature NOWERROR
|
||||||
|
enable_feature VERBOSE
|
||||||
|
|
||||||
|
use amd64 && enable_feature PTR64
|
||||||
|
use debug && enable_feature DEBUG
|
||||||
|
use tools && enable_feature TOOLS
|
||||||
|
disable_feature NO_X11 # bgfx needs X
|
||||||
|
use openmp && enable_feature OPENMP
|
||||||
|
|
||||||
|
if use alsa ; then
|
||||||
|
enable_feature USE_SYSTEM_LIB_PORTMIDI
|
||||||
|
else
|
||||||
|
enable_feature NO_USE_MIDI
|
||||||
|
fi
|
||||||
|
|
||||||
|
sed -i \
|
||||||
|
-e 's/-Os//' \
|
||||||
|
-e '/^\(CC\|CXX\|AR\) /s/=/?=/' \
|
||||||
|
3rdparty/genie/build/gmake.linux/genie.make || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
local targetargs
|
||||||
|
local qtdebug=$(usex debug 1 0)
|
||||||
|
|
||||||
|
use arcade && ! use mess && targetargs="SUBTARGET=arcade"
|
||||||
|
! use arcade && use mess && targetargs="SUBTARGET=mess"
|
||||||
|
|
||||||
|
function my_emake() {
|
||||||
|
# Workaround conflicting $ARCH variable used by both Gentoo's
|
||||||
|
# portage and by Mame's build scripts
|
||||||
|
PYTHON_EXECUTABLE=${PYTHON} \
|
||||||
|
OVERRIDE_CC=$(tc-getCC) \
|
||||||
|
OVERRIDE_CXX=$(tc-getCXX) \
|
||||||
|
OVERRIDE_LD=$(tc-getCXX) \
|
||||||
|
QT_HOME="$(qt5_get_libdir)/qt5" \
|
||||||
|
ARCH= \
|
||||||
|
emake "$@" \
|
||||||
|
AR=$(tc-getAR)
|
||||||
|
}
|
||||||
|
my_emake -j1 generate
|
||||||
|
|
||||||
|
my_emake ${targetargs} \
|
||||||
|
SDL_INI_PATH="\$\$\$\$HOME/.sdlmame;${GAMES_SYSCONFDIR}/${PN}" \
|
||||||
|
USE_QTDEBUG=${qtdebug}
|
||||||
|
|
||||||
|
if use tools ; then
|
||||||
|
my_emake -j1 TARGET=ldplayer USE_QTDEBUG=${qtdebug}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local MAMEBIN
|
||||||
|
local suffix="$(use amd64 && echo 64)$(use debug && echo d)"
|
||||||
|
local f
|
||||||
|
|
||||||
|
function mess_install() {
|
||||||
|
dosym ${MAMEBIN} "${GAMES_BINDIR}"/mess${suffix}
|
||||||
|
dosym ${MAMEBIN} "${GAMES_BINDIR}"/sdlmess
|
||||||
|
newman docs/man/mess.6 sdlmess.6
|
||||||
|
doman docs/man/mess.6
|
||||||
|
}
|
||||||
|
if use arcade ; then
|
||||||
|
if use mess ; then
|
||||||
|
MAMEBIN="mame${suffix}"
|
||||||
|
mess_install
|
||||||
|
else
|
||||||
|
MAMEBIN="mamearcade${suffix}"
|
||||||
|
fi
|
||||||
|
doman docs/man/mame.6
|
||||||
|
newman docs/man/mame.6 ${PN}.6
|
||||||
|
elif use mess ; then
|
||||||
|
MAMEBIN="mess${suffix}"
|
||||||
|
mess_install
|
||||||
|
fi
|
||||||
|
dogamesbin ${MAMEBIN}
|
||||||
|
dosym ${MAMEBIN} "${GAMES_BINDIR}/${PN}"
|
||||||
|
|
||||||
|
insinto "${GAMES_DATADIR}/${PN}"
|
||||||
|
doins -r keymaps $(use mess && echo hash)
|
||||||
|
|
||||||
|
# Create default mame.ini and inject Gentoo settings into it
|
||||||
|
# Note that '~' does not work and '$HOME' must be used
|
||||||
|
./${MAMEBIN} -noreadconfig -showconfig > "${T}/mame.ini" || die
|
||||||
|
# -- Paths --
|
||||||
|
for f in {rom,hash,sample,art,font,crosshair} ; do
|
||||||
|
sed -i \
|
||||||
|
-e "s:\(${f}path\)[ \t]*\(.*\):\1 \t\t\$HOME/.${PN}/\2;${GAMES_DATADIR}/${PN}/\2:" \
|
||||||
|
"${T}/mame.ini" || die
|
||||||
|
done
|
||||||
|
for f in {ctrlr,cheat} ; do
|
||||||
|
sed -i \
|
||||||
|
-e "s:\(${f}path\)[ \t]*\(.*\):\1 \t\t\$HOME/.${PN}/\2;${GAMES_SYSCONFDIR}/${PN}/\2;${GAMES_DATADIR}/${PN}/\2:" \
|
||||||
|
"${T}/mame.ini" || die
|
||||||
|
done
|
||||||
|
# -- Directories
|
||||||
|
for f in {cfg,nvram,memcard,input,state,snapshot,diff,comment} ; do
|
||||||
|
sed -i \
|
||||||
|
-e "s:\(${f}_directory\)[ \t]*\(.*\):\1 \t\t\$HOME/.${PN}/\2:" \
|
||||||
|
"${T}/mame.ini" || die
|
||||||
|
done
|
||||||
|
# -- Keymaps --
|
||||||
|
sed -i \
|
||||||
|
-e "s:\(keymap_file\)[ \t]*\(.*\):\1 \t\t\$HOME/.${PN}/\2:" \
|
||||||
|
"${T}/mame.ini" || die
|
||||||
|
for f in keymaps/km*.map ; do
|
||||||
|
sed -i \
|
||||||
|
-e "/^keymap_file/a \#keymap_file \t\t${GAMES_DATADIR}/${PN}/keymaps/${f##*/}" \
|
||||||
|
"${T}/mame.ini" || die
|
||||||
|
done
|
||||||
|
insinto "${GAMES_SYSCONFDIR}/${PN}"
|
||||||
|
doins "${T}/mame.ini"
|
||||||
|
|
||||||
|
insinto "${GAMES_SYSCONFDIR}/${PN}"
|
||||||
|
doins "${FILESDIR}/vector.ini"
|
||||||
|
|
||||||
|
dodoc docs/{config,mame,newvideo}.txt
|
||||||
|
keepdir \
|
||||||
|
"${GAMES_DATADIR}/${PN}"/{ctrlr,cheat,roms,samples,artwork,crosshair} \
|
||||||
|
"${GAMES_SYSCONFDIR}/${PN}"/{ctrlr,cheat}
|
||||||
|
|
||||||
|
if use tools ; then
|
||||||
|
for f in castool chdman floptool imgtool jedutil ldresample ldverify romcmp ; do
|
||||||
|
newgamesbin ${f} ${PN}-${f}
|
||||||
|
newman docs/man/${f}.1 ${PN}-${f}.1
|
||||||
|
done
|
||||||
|
newgamesbin ldplayer${suffix} ${PN}-ldplayer
|
||||||
|
newman docs/man/ldplayer.1 ${PN}-ldplayer.1
|
||||||
|
fi
|
||||||
|
|
||||||
|
prepgamesdirs
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
games_pkg_postinst
|
||||||
|
|
||||||
|
elog "It is strongly recommended to change either the system-wide"
|
||||||
|
elog " ${GAMES_SYSCONFDIR}/${PN}/mame.ini or use a per-user setup at ~/.${PN}/mame.ini"
|
||||||
|
elog
|
||||||
|
if use opengl ; then
|
||||||
|
elog "You built ${PN} with opengl support and should set"
|
||||||
|
elog "\"video\" to \"opengl\" in mame.ini to take advantage of that"
|
||||||
|
elog
|
||||||
|
elog "For more info see http://wiki.mamedev.org"
|
||||||
|
fi
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user