(Linux) A current SDL library version is now built and included with the AppImage releases.

This commit is contained in:
Leon Styhre 2022-09-27 18:01:01 +02:00
parent c036323039
commit 7d3a3e6b30
2 changed files with 56 additions and 4 deletions

View file

@ -9,9 +9,16 @@
# distributions as for example Debian-based systems place the TLS certificates in a # distributions as for example Debian-based systems place the TLS certificates in a
# different location under /etc than Fedora and openSUSE. # different location under /etc than Fedora and openSUSE.
# #
# This script has only been tested on Ubuntu 20.04 LTS. It's recommended to only build # The SDL library is also built and included in the AppImage.
# AppImages on this operating system for maximum compatibility.
# #
# This script has only been tested on Ubuntu 20.04 LTS and 22.04 LTS.
#
# How many CPU threads to use for the compilation.
JOBS=4
SDL_RELEASE_TAG=release-2.24.0
SDL_SHARED_LIBRARY=libSDL2-2.0.so.0.2400.0
echo "Building AppImage..." echo "Building AppImage..."
@ -34,13 +41,31 @@ fi
chmod a+x linuxdeploy-x86_64.AppImage chmod a+x linuxdeploy-x86_64.AppImage
if [ ! -f external/SDL/build/${SDL_SHARED_LIBRARY} ]; then
echo
echo "Building the SDL library..."
cd external
rm -rf SDL
git clone https://github.com/libsdl-org/SDL.git
cd SDL
git checkout $SDL_RELEASE_TAG
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -S .. -B .
make -j${JOBS}
cd ../../..
else
echo
echo -e "The SDL library has already been built, skipping this step\n"
fi
rm -rf ./AppDir rm -rf ./AppDir
mkdir AppDir mkdir AppDir
rm -f CMakeCache.txt rm -f CMakeCache.txt
cmake -DAPPIMAGE_BUILD=on -DBUNDLED_CERTS=on . cmake -DAPPIMAGE_BUILD=on -DBUNDLED_CERTS=on .
make clean make clean
make -j8 make -j${JOBS}
make install DESTDIR=AppDir make install DESTDIR=AppDir
cd AppDir cd AppDir
ln -s usr/bin/emulationstation AppRun ln -s usr/bin/emulationstation AppRun
@ -53,6 +78,7 @@ ln -s ../share/emulationstation/themes .
cd ../../.. cd ../../..
./linuxdeploy-x86_64.AppImage -l /lib/x86_64-linux-gnu/libOpenGL.so.0 -l /lib/x86_64-linux-gnu/libgio-2.0.so.0 --appdir AppDir ./linuxdeploy-x86_64.AppImage -l /lib/x86_64-linux-gnu/libOpenGL.so.0 -l /lib/x86_64-linux-gnu/libgio-2.0.so.0 --appdir AppDir
cp external/SDL/build/${SDL_SHARED_LIBRARY} AppDir/usr/lib/libSDL2-2.0.so.0
./appimagetool-x86_64.AppImage AppDir ./appimagetool-x86_64.AppImage AppDir
#VERSION=$(grep PROGRAM_VERSION_STRING es-app/src/EmulationStation.h | cut -f3 -d" " | sed s/\"//g) #VERSION=$(grep PROGRAM_VERSION_STRING es-app/src/EmulationStation.h | cut -f3 -d" " | sed s/\"//g)

View file

@ -5,10 +5,17 @@
# create_AppImage_SteamDeck.sh # create_AppImage_SteamDeck.sh
# #
# Runs the complete process of building a Linux AppImage specific to the Valve Steam Deck. # Runs the complete process of building a Linux AppImage specific to the Valve Steam Deck.
# The SDL library is also built and included in the AppImage.
# #
# This script has only been tested on Ubuntu 20.04 LTS. # This script has only been tested on Ubuntu 20.04 LTS.
# #
# How many CPU threads to use for the compilation.
JOBS=4
SDL_RELEASE_TAG=release-2.24.0
SDL_SHARED_LIBRARY=libSDL2-2.0.so.0.2400.0
echo "Building Steam Deck AppImage..." echo "Building Steam Deck AppImage..."
if [ ! -f .clang-format ]; then if [ ! -f .clang-format ]; then
@ -30,13 +37,31 @@ fi
chmod a+x linuxdeploy-x86_64.AppImage chmod a+x linuxdeploy-x86_64.AppImage
if [ ! -f external/SDL/build/${SDL_SHARED_LIBRARY} ]; then
echo
echo "Building the SDL library..."
cd external
rm -rf SDL
git clone https://github.com/libsdl-org/SDL.git
cd SDL
git checkout $SDL_RELEASE_TAG
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -S .. -B .
make -j${JOBS}
cd ../../..
else
echo
echo -e "The SDL library has already been built, skipping this step\n"
fi
rm -rf ./AppDir rm -rf ./AppDir
mkdir AppDir mkdir AppDir
rm -f CMakeCache.txt rm -f CMakeCache.txt
cmake -DAPPIMAGE_BUILD=on -DSTEAM_DECK=on . cmake -DAPPIMAGE_BUILD=on -DSTEAM_DECK=on .
make clean make clean
make -j8 make -j${JOBS}
make install DESTDIR=AppDir make install DESTDIR=AppDir
cd AppDir cd AppDir
ln -s usr/bin/emulationstation AppRun ln -s usr/bin/emulationstation AppRun
@ -49,6 +74,7 @@ ln -s ../share/emulationstation/themes .
cd ../../.. cd ../../..
./linuxdeploy-x86_64.AppImage -l /lib/x86_64-linux-gnu/libOpenGL.so.0 -l /lib/x86_64-linux-gnu/libgio-2.0.so.0 --appdir AppDir ./linuxdeploy-x86_64.AppImage -l /lib/x86_64-linux-gnu/libOpenGL.so.0 -l /lib/x86_64-linux-gnu/libgio-2.0.so.0 --appdir AppDir
cp external/SDL/build/${SDL_SHARED_LIBRARY} AppDir/usr/lib/libSDL2-2.0.so.0
./appimagetool-x86_64.AppImage AppDir ./appimagetool-x86_64.AppImage AppDir
mv EmulationStation_Desktop_Edition-x86_64.AppImage EmulationStation-DE-x64_SteamDeck.AppImage mv EmulationStation_Desktop_Edition-x86_64.AppImage EmulationStation-DE-x64_SteamDeck.AppImage