112 lines
5.0 KiB
Bash
112 lines
5.0 KiB
Bash
#!/bin/bash
|
|
|
|
status "Installing Dependencies"
|
|
install_packages rsync cmake zlib1g-dev libjpeg-dev libjsoncpp-dev libpcre3-dev build-essential libbz2-dev libasound2-dev libsdl2-dev ffmpeg libgl-dev libglew-dev libgtk-3-dev libjack-jackd2-dev libjsoncpp-dev libmad0-dev libpng-dev libpulse-dev libtomcrypt-dev libtommath-dev libudev-dev libva-dev libvorbis-dev libxinerama-dev libx11-dev libxrandr-dev libxtst-dev || exit 1
|
|
|
|
status "Cloning repo"
|
|
git_clone https://github.com/stepmania/stepmania.git || error "Could not clone repo"
|
|
cd stepmania || error "Could not enter stepmania folder"
|
|
git checkout 0faf106eb196fd7187edab0aaa8f9e043c5e6d19 || error "Could not checkout desired commit"
|
|
|
|
# add patch
|
|
# this format of writing to a file changes none of the output (does not mess up '', "", or any special character)
|
|
# unfortunatly VSCODE does not do well with it for auto formatting but too bad
|
|
|
|
cat << 'EOF' >> 0001-patch-upstream-for-ARM.patch
|
|
From e7b9c1db0067915211741d1be436d086fa1a1410 Mon Sep 17 00:00:00 2001
|
|
From: theofficialgman <28281419+theofficialgman@users.noreply.github.com>
|
|
Date: Sat, 4 Jun 2022 17:11:35 -0400
|
|
Subject: [PATCH] patch upstream for ARM
|
|
|
|
---
|
|
extern/libpng/configure.ac | 4 ++++
|
|
extern/libpng/pngpriv.h | 4 ++--
|
|
src/arch/MovieTexture/MovieTexture_FFMpeg.h | 2 +-
|
|
3 files changed, 7 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/extern/libpng/configure.ac b/extern/libpng/configure.ac
|
|
index 52dba94..1b95047 100644
|
|
--- a/extern/libpng/configure.ac
|
|
+++ b/extern/libpng/configure.ac
|
|
@@ -363,17 +363,21 @@ AC_ARG_ENABLE([arm-neon],
|
|
[case "$enableval" in
|
|
no|off)
|
|
# disable the default enabling on __ARM_NEON__ systems:
|
|
+ AC_DEFINE([PNG_USE_ARM_NEON], [], [ARM NEON support])
|
|
AC_DEFINE([PNG_ARM_NEON_OPT], [0],
|
|
[Disable ARM Neon optimizations])
|
|
# Prevent inclusion of the assembler files below:
|
|
enable_arm_neon=no;;
|
|
check)
|
|
+ AC_DEFINE([PNG_USE_ARM_NEON], [], [ARM NEON support])
|
|
AC_DEFINE([PNG_ARM_NEON_CHECK_SUPPORTED], [],
|
|
[Check for ARM Neon support at run-time]);;
|
|
api)
|
|
+ AC_DEFINE([PNG_USE_ARM_NEON], [], [ARM NEON support])
|
|
AC_DEFINE([PNG_ARM_NEON_API_SUPPORTED], [],
|
|
[Turn on ARM Neon optimizations at run-time]);;
|
|
yes|on)
|
|
+ AC_DEFINE([PNG_USE_ARM_NEON], [], [ARM NEON support])
|
|
AC_DEFINE([PNG_ARM_NEON_OPT], [2],
|
|
[Enable ARM Neon optimizations])
|
|
AC_MSG_WARN([--enable-arm-neon: please specify 'check' or 'api', if]
|
|
diff --git a/extern/libpng/pngpriv.h b/extern/libpng/pngpriv.h
|
|
index 583c26f..0293a75 100644
|
|
--- a/extern/libpng/pngpriv.h
|
|
+++ b/extern/libpng/pngpriv.h
|
|
@@ -127,8 +127,8 @@
|
|
* associated assembler code, pass --enable-arm-neon=no to configure
|
|
* or put -DPNG_ARM_NEON_OPT=0 in CPPFLAGS.
|
|
*/
|
|
-# if (defined(__ARM_NEON__) || defined(__ARM_NEON)) && \
|
|
- defined(PNG_ALIGNED_MEMORY_SUPPORTED)
|
|
+# if defined(PNG_USE_ARM_NEON) && (defined(__ARM_NEON__) || \
|
|
+ defined(__ARM_NEON)) && defined(PNG_ALIGNED_MEMORY_SUPPORTED)
|
|
# define PNG_ARM_NEON_OPT 2
|
|
# else
|
|
# define PNG_ARM_NEON_OPT 0
|
|
diff --git a/src/arch/MovieTexture/MovieTexture_FFMpeg.h b/src/arch/MovieTexture/MovieTexture_FFMpeg.h
|
|
index c092b76..36a6cf1 100644
|
|
--- a/src/arch/MovieTexture/MovieTexture_FFMpeg.h
|
|
+++ b/src/arch/MovieTexture/MovieTexture_FFMpeg.h
|
|
@@ -14,7 +14,7 @@ namespace avcodec
|
|
#include <libswscale/swscale.h>
|
|
#include <libavutil/pixdesc.h>
|
|
|
|
- #if LIBAVCODEC_VERSION_MAJOR >= 58
|
|
+ #if LIBAVCODEC_VERSION_MAJOR >= 57
|
|
#define av_free_packet av_packet_unref
|
|
#define PixelFormat AVPixelFormat
|
|
#define PIX_FMT_YUYV422 AV_PIX_FMT_YUYV422
|
|
--
|
|
2.25.1
|
|
|
|
EOF
|
|
|
|
git apply 0001-patch-upstream-for-ARM.patch || error "Applying patch failed"
|
|
mkdir build && cd build || error "Could not create or enter build directory"
|
|
status "Running cmake"
|
|
cmake -DCMAKE_BUILD_TYPE=Release -DWITH_SDL=yes -DWITH_SYSTEM_GLEW=yes -DWITH_SYSTEM_TOMMATH=yes -DWITH_SYSTEM_MAD=yes -DWITH_SYSTEM_ZLIB=yes -DWITH_SYSTEM_JPEG=yes -DWITH_SYSTEM_PCRE=yes -DWITH_SYSTEM_OGG=yes -DWITH_SYSTEM_FFMPEG=yes -DWITH_FULL_RELEASE=yes -DWITH_CRASH_HANDLER=no -DWITH_NETWORKING=yes -WITH_MINIMAID=no .. || error "Cmake ended with error"
|
|
|
|
status "Starting build"
|
|
make -j$(nproc) || "error Failed to build"
|
|
# installs to /usr/local/stepmania-5.1 folder for everything
|
|
status "Installing stepmania"
|
|
sudo make install || error "Could not install"
|
|
cd .. || error "could not move back directory"
|
|
# install icons (the installer does not do this)
|
|
sudo rsync -a ./icons/ /usr/local/share/icons/
|
|
# add .desktop file (the one in the repo is not good and is not installed)
|
|
echo "[Desktop Entry]
|
|
Encoding=UTF-8
|
|
Name=StepMania
|
|
GenericName=Rhythm and dance game
|
|
Exec=/usr/local/stepmania-5.1/stepmania
|
|
Terminal=false
|
|
Icon=stepmania-ssc
|
|
Type=Application
|
|
Categories=Application;Game;ArcadeGame
|
|
Comment=A cross-platform rhythm video game." | sudo tee /usr/local/share/applications/stepmania.desktop || error "Could not created .desktop file"
|
|
|
|
status_green "Install finished"
|