diff --git a/tools/create_AppImage.sh b/tools/create_AppImage.sh index 12110fbab..2af630bb0 100755 --- a/tools/create_AppImage.sh +++ b/tools/create_AppImage.sh @@ -9,9 +9,16 @@ # distributions as for example Debian-based systems place the TLS certificates in a # 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 -# AppImages on this operating system for maximum compatibility. +# The SDL library is also built and included in the AppImage. # +# 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..." @@ -34,13 +41,31 @@ fi 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 mkdir AppDir rm -f CMakeCache.txt cmake -DAPPIMAGE_BUILD=on -DBUNDLED_CERTS=on . make clean -make -j8 +make -j${JOBS} make install DESTDIR=AppDir cd AppDir ln -s usr/bin/emulationstation AppRun @@ -53,6 +78,7 @@ ln -s ../share/emulationstation/themes . 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 +cp external/SDL/build/${SDL_SHARED_LIBRARY} AppDir/usr/lib/libSDL2-2.0.so.0 ./appimagetool-x86_64.AppImage AppDir #VERSION=$(grep PROGRAM_VERSION_STRING es-app/src/EmulationStation.h | cut -f3 -d" " | sed s/\"//g) diff --git a/tools/create_AppImage_SteamDeck.sh b/tools/create_AppImage_SteamDeck.sh index b8838352a..c07d42fd4 100755 --- a/tools/create_AppImage_SteamDeck.sh +++ b/tools/create_AppImage_SteamDeck.sh @@ -5,10 +5,17 @@ # create_AppImage_SteamDeck.sh # # 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. # +# 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..." if [ ! -f .clang-format ]; then @@ -30,13 +37,31 @@ fi 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 mkdir AppDir rm -f CMakeCache.txt cmake -DAPPIMAGE_BUILD=on -DSTEAM_DECK=on . make clean -make -j8 +make -j${JOBS} make install DESTDIR=AppDir cd AppDir ln -s usr/bin/emulationstation AppRun @@ -49,6 +74,7 @@ ln -s ../share/emulationstation/themes . 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 +cp external/SDL/build/${SDL_SHARED_LIBRARY} AppDir/usr/lib/libSDL2-2.0.so.0 ./appimagetool-x86_64.AppImage AppDir mv EmulationStation_Desktop_Edition-x86_64.AppImage EmulationStation-DE-x64_SteamDeck.AppImage