summaryrefslogtreecommitdiffstats
path: root/games/dolphin-emu/dolphin-emu.SlackBuild
diff options
context:
space:
mode:
Diffstat (limited to 'games/dolphin-emu/dolphin-emu.SlackBuild')
-rw-r--r--games/dolphin-emu/dolphin-emu.SlackBuild105
1 files changed, 75 insertions, 30 deletions
diff --git a/games/dolphin-emu/dolphin-emu.SlackBuild b/games/dolphin-emu/dolphin-emu.SlackBuild
index a254bf93aa..95732087f6 100644
--- a/games/dolphin-emu/dolphin-emu.SlackBuild
+++ b/games/dolphin-emu/dolphin-emu.SlackBuild
@@ -1,7 +1,8 @@
-#!/bin/sh
+#!/bin/bash
# Slackware build script for dolphin-emu
+# Copyright 2022-2023 Steven Voges <Oregon, USA>
# Copyright 2013-2017 Larry Hajali <larryhaja[at]gmail[dot]com>
# All rights reserved.
#
@@ -22,10 +23,26 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+cd $(dirname $0) ; CWD=$(pwd)
+
PRGNAM=dolphin-emu
-VERSION=${VERSION:-5.0}
-BUILD=${BUILD:-2}
+SRCNAM=dolphin
+VERSION=${VERSION:-5.0.20059}
+COMMIT=$(echo $VERSION | cut -c 5-)
+SRCVER=${SRCVER:-5e5887a378db28324a8fc8825f21539525412e12}
+IMPLOT=${IMPLOT:-cc5e1daa5c7f2335a9460ae79c829011dc5cef2d}
+LIBSPNG=${LIBSPNG:-dc5b1032c08efac68ad30170f7ccbf0aa8dd55c9}
+MGBA=${MGBA:-8739b22fbc90fdf0b4f6612ef9c0520f0ba44a51}
+RCHEEVOS=${RCHEEVOS:-d9e990e6d13527532b7e2bb23164a1f3b7f33bb5}
+SPIRVCROSS=${SPIRVCROSS:-50b4d5389b6a06f86fb63a2848e1a7da6d9755ca}
+VULKANMEMORYALLOCATOR=${VULKANMEMORYALLOCATOR:-498e20dfd1343d99b9115201034bb0219801cdec}
+ZLIBNG=${ZLIBNG:-ce01b1e41da298334f8214389cc9369540a7560f}
+ANALYTICS=${ANALYTICS:-ON}
+DISCORD=${DISCORD:-OFF}
+USEMGBA=${USEMGBA:-ON}
+BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
@@ -35,10 +52,15 @@ if [ -z "$ARCH" ]; then
esac
fi
-CWD=$(pwd)
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
+DEPS=$TMP/$SRCNAM-$SRCVER/Externals
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
@@ -59,9 +81,29 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf ${PRGNAM/-*/}-$VERSION
-tar xvf $CWD/${PRGNAM/-*/}-$VERSION.tar.?z
-cd ${PRGNAM/-*/}-$VERSION
+rm -rf $SRCNAM-$SRCVER
+tar xvf $CWD/$SRCNAM-$SRCVER.tar.gz
+cd $SRCNAM-$SRCVER
+
+tar xvf $CWD/SPIRV-Cross-$SPIRVCROSS.tar.gz -C \
+ $DEPS/spirv_cross/SPIRV-Cross --strip-components 1
+tar xvf $CWD/VulkanMemoryAllocator-$VULKANMEMORYALLOCATOR.tar.gz -C \
+ $DEPS/VulkanMemoryAllocator --strip-components 1
+tar xvf $CWD/implot-$IMPLOT.tar.gz -C \
+ $DEPS/implot/implot --strip-components 1
+tar xvf $CWD/libspng-$LIBSPNG.tar.gz -C \
+ $DEPS/libspng/libspng --strip-components 1
+if [ ${USEMGBA} = "ON" ]; then
+ tar xvf $CWD/mgba-$MGBA.tar.gz -C \
+ $DEPS/mGBA/mgba --strip-components 1
+fi
+tar xvf $CWD/rcheevos-$RCHEEVOS.tar.gz -C \
+ $DEPS/rcheevos/rcheevos --strip-components 1
+tar xvf $CWD/zlib-ng-$ZLIBNG.tar.gz -C \
+ $DEPS/zlib-ng/zlib-ng --strip-components 1
+
+sed -i "s/ (no further info)/-$COMMIT/g" CMake/ScmRevGen.cmake
+
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -69,26 +111,33 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-mkdir build
+# LTO currently breaks JIT and will crash dolphin on game load.
+# fmt10 is not supported by dolphin yet, force bundled fmt9.
+# mgba 0.10.2 changed functions that break compilation, force bundled mgba.
+mkdir -p build
cd build
- cmake -G "Unix Makefiles" \
- -DCMAKE_INSTALL_PREFIX:PATH=/usr \
- -Dbindir=/usr/games \
- -Dmandir=/usr/man \
- -DLIB_INSTALL_DIR=lib${LIBDIRSUFFIX} \
- -DENABLE_LTO:BOOL=ON \
- -DUSE_SHARED_GTEST:BOOL=ON \
- -DUSE_SHARED_ENET:BOOL=ON \
- -DENABLE_SDL:BOOL=ON \
- -DINSTALL_LIB_DIR=/usr/lib${LIBDIRSUFFIX} \
+ cmake \
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
- -DDISTRIBUTOR="Slackware" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIB_INSTALL_DIR=/usr/lib${LIBDIRSUFFIX} \
+ -Dmandir=/usr/man \
+ -DDISTRIBUTOR=SlackBuilds.org \
+ -DENABLE_ANALYTICS=$ANALYTICS \
+ -DENABLE_LTO=OFF \
+ -DENABLE_SDL=ON \
+ -DENABLE_TESTS=OFF \
+ -DUSE_DISCORD_PRESENCE=$DISCORD \
+ -DUSE_MGBA=$USEMGBA \
+ -DUSE_SYSTEM_CUBEB=ON \
+ -DUSE_SYSTEM_FMT=OFF \
+ -DUSE_SYSTEM_LIBMGBA=OFF \
-DCMAKE_BUILD_TYPE=Release ..
+ make
+ make install/strip DESTDIR=$PKG
+cd ..
- make VERBOSE=1
- make install DESTDIR=$PKG
-cd -
+mv $PKG/usr/share/man $PKG/usr/man
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
@@ -96,14 +145,10 @@ find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | gr
find $PKG/usr/man -type f -exec gzip -9 {} \;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
-for i in 16 32 64 128; do
- convert Installer/Dolphin.ico -resize ${i}x${i}! $PRGNAM-${i}.png
- install -D -m 0644 $PRGNAM-${i}-3.png \
- $PKG/usr/share/icons/hicolor/${i}x${i}/apps/$PRGNAM.png
-done
-
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a license.txt *.md $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a \
+ docs LICENSES/* *.md COPYING \
+ $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
@@ -111,4 +156,4 @@ cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE