0
0
Fork 0
haikuports/games-emulation/mgba/mgba-0.9.1.recipe

120 lines
3.8 KiB
Bash

SUMMARY="A new Game Boy, Game Boy Color, and Game Boy Advance emulator written in C"
DESCRIPTION="mGBA is a new generation of Game Boy Advance emulator. The project \
started in April 2013 with the goal of being fast enough to run on lower end \
hardware than other emulators support, without sacrificing accuracy or \
portability. Even in the initial version, games generally played without \
problems. mGBA has only gotten better since then, and now boasts being the \
most accurate GBA emulator around.
Other goals include accurate enough emulation to provide a development \
environment for homebrew software, a good workflow for tool-assist runners, \
and a modern feature set for emulators that older emulators may not support."
HOMEPAGE="https://mgba.io/"
COPYRIGHT="2013-2021 Jeffrey Pfau"
LICENSE="MPL v2.0"
REVISION="1"
SOURCE_URI="https://github.com/mgba-emu/mgba/archive/$portVersion.tar.gz"
CHECKSUM_SHA256="c1e5f6c7635dfb015f8c9466638dd55ee7747cdfb0ca69017baf15ec19d727f9"
ADDITIONAL_FILES="mgba.rdef.in"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
mgba$secondaryArchSuffix = $portVersion
cmd:mgba$secondaryArchSuffix = $portVersion
cmd:mgba_qt$secondaryArchSuffix = $portVersion
lib:libmgba$secondaryArchSuffix = $portVersion
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libavcodec$secondaryArchSuffix
lib:libavformat$secondaryArchSuffix
lib:libavutil$secondaryArchSuffix
lib:libedit$secondaryArchSuffix
lib:liblzma$secondaryArchSuffix
lib:libminizip$secondaryArchSuffix
lib:libncurses$secondaryArchSuffix
lib:libpng16$secondaryArchSuffix
lib:libQt5Core$secondaryArchSuffix
lib:libQt5Gui$secondaryArchSuffix
lib:libQt5Multimedia$secondaryArchSuffix
lib:libQt5Network$secondaryArchSuffix
lib:libQt5Widgets$secondaryArchSuffix
# If you have come here to upgrade mGBA to use SDL2, know this:
# Haiku's SDL2 port is (at time of writing) TOTALLY INCOMPATIBLE with
# Qt and cannot be run in the same binary as it, as both create
# BApplication objects independent of the other.
# SDL1.2 checks if one already exists first, so it's OK.
lib:libSDL_1.2$secondaryArchSuffix
lib:libsqlite3$secondaryArchSuffix
lib:libswscale$secondaryArchSuffix
lib:libz$secondaryArchSuffix
lib:libzip$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libavcodec$secondaryArchSuffix
devel:libavformat$secondaryArchSuffix
devel:libavutil$secondaryArchSuffix
devel:libedit$secondaryArchSuffix
devel:liblzma$secondaryArchSuffix
devel:libminizip$secondaryArchSuffix
devel:libncurses$secondaryArchSuffix
devel:libpng16$secondaryArchSuffix
devel:libQt5Core$secondaryArchSuffix
devel:libQt5Gui$secondaryArchSuffix
devel:libQt5Multimedia$secondaryArchSuffix
devel:libQt5Network$secondaryArchSuffix
devel:libQt5Widgets$secondaryArchSuffix
devel:libSDL_1.2$secondaryArchSuffix
devel:libsqlite3$secondaryArchSuffix
devel:libswscale$secondaryArchSuffix
devel:libz$secondaryArchSuffix
devel:libzip$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:lrelease$secondaryArchSuffix >= 5
cmd:ninja
cmd:pkg_config$secondaryArchSuffix
"
BUILD()
{
cmake . $cmakeDirArgs \
-GNinja \
-DBUILD_GL=OFF \
-DBUILD_GLES2=OFF \
-DBUILD_GLES3=OFF \
-DUSE_DISCORD_RPC=OFF
ninja $jobArgs
}
INSTALL()
{
ninja install
local APP_SIGNATURE="application/x-vnd.qt5-mgba"
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3`"
local LONG_INFO="$SUMMARY"
sed \
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
$portDir/additional-files/mgba.rdef.in > mgba.rdef
# not needed
rm -rf $prefix/share
addResourcesToBinaries mgba.rdef $binDir/mgba-qt
addAppDeskbarSymlink $binDir/mgba-qt mGBA
}