2021-11-25 18:28:49 +00:00
|
|
|
#!/usr/bin/bash
|
|
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
#
|
|
|
|
# EmulationStation Desktop Edition
|
|
|
|
# create_AppImage.sh
|
|
|
|
#
|
|
|
|
# Runs the complete process of building a Linux AppImage.
|
2022-06-29 15:22:50 +00:00
|
|
|
# The BUNDLED_CERTS option is very important as otherwise curl will not work on all
|
2021-11-25 18:28:49 +00:00
|
|
|
# distributions as for example Debian-based systems place the TLS certificates in a
|
|
|
|
# different location under /etc than Fedora and openSUSE.
|
|
|
|
#
|
2022-09-27 16:01:01 +00:00
|
|
|
# The SDL library is also built and included in the AppImage.
|
2021-11-25 18:28:49 +00:00
|
|
|
#
|
2022-09-27 16:01:01 +00:00
|
|
|
# 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
|
|
|
|
|
2023-06-25 11:18:43 +00:00
|
|
|
SDL_RELEASE_TAG=release-2.28.0
|
|
|
|
SDL_SHARED_LIBRARY=libSDL2-2.0.so.0.2800.0
|
2021-11-25 18:28:49 +00:00
|
|
|
|
|
|
|
echo "Building AppImage..."
|
|
|
|
|
|
|
|
if [ ! -f .clang-format ]; then
|
|
|
|
echo "You need to run this script from the root of the repository."
|
|
|
|
exit
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ ! -f appimagetool-x86_64.AppImage ]; then
|
|
|
|
echo -e "Can't find appimagetool-x86_64.AppImage, downloading the latest version...\n"
|
|
|
|
wget "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage"
|
|
|
|
fi
|
|
|
|
|
|
|
|
chmod a+x appimagetool-x86_64.AppImage
|
|
|
|
|
|
|
|
if [ ! -f linuxdeploy-x86_64.AppImage ]; then
|
|
|
|
echo -e "Can't find linuxdeploy-x86_64.AppImage, downloading the latest version...\n"
|
|
|
|
wget "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage"
|
|
|
|
fi
|
|
|
|
|
|
|
|
chmod a+x linuxdeploy-x86_64.AppImage
|
|
|
|
|
2022-09-27 16:01:01 +00:00
|
|
|
if [ ! -f external/SDL/build/${SDL_SHARED_LIBRARY} ]; then
|
2023-01-31 17:44:45 +00:00
|
|
|
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
|
2023-01-27 16:31:09 +00:00
|
|
|
|
2023-01-31 17:44:45 +00:00
|
|
|
mkdir build
|
|
|
|
cd build
|
|
|
|
cmake -DCMAKE_BUILD_TYPE=Release -S .. -B .
|
|
|
|
|
|
|
|
if [ $(grep PKG_PIPEWIRE_VERSION:INTERNAL= CMakeCache.txt) = "PKG_PIPEWIRE_VERSION:INTERNAL=" ]; then
|
2022-09-27 16:01:01 +00:00
|
|
|
echo
|
2023-01-31 17:44:45 +00:00
|
|
|
echo -e "The SDL library is not configured with PipeWire support, aborting."
|
|
|
|
exit
|
|
|
|
fi
|
|
|
|
|
|
|
|
make -j${JOBS}
|
|
|
|
cd ../../..
|
|
|
|
else
|
|
|
|
echo
|
|
|
|
echo -e "The SDL library has already been built, skipping this step\n"
|
2022-09-27 16:01:01 +00:00
|
|
|
fi
|
|
|
|
|
2021-11-25 18:28:49 +00:00
|
|
|
rm -rf ./AppDir
|
|
|
|
mkdir AppDir
|
|
|
|
|
2022-03-20 18:46:43 +00:00
|
|
|
rm -f CMakeCache.txt
|
2022-08-20 09:28:20 +00:00
|
|
|
cmake -DAPPIMAGE_BUILD=on -DBUNDLED_CERTS=on .
|
2021-11-25 18:28:49 +00:00
|
|
|
make clean
|
2022-09-27 16:01:01 +00:00
|
|
|
make -j${JOBS}
|
2021-11-25 18:28:49 +00:00
|
|
|
make install DESTDIR=AppDir
|
|
|
|
cd AppDir
|
|
|
|
ln -s usr/bin/emulationstation AppRun
|
|
|
|
ln -s usr/share/pixmaps/emulationstation.svg .
|
|
|
|
ln -s usr/share/applications/org.es_de.emulationstation-de.desktop .
|
|
|
|
ln -s emulationstation.svg .DirIcon
|
|
|
|
cd usr/bin
|
|
|
|
ln -s ../share/emulationstation/resources .
|
|
|
|
ln -s ../share/emulationstation/themes .
|
|
|
|
cd ../../..
|
|
|
|
|
2023-01-05 17:10:00 +00:00
|
|
|
./linuxdeploy-x86_64.AppImage -l /lib/x86_64-linux-gnu/libOpenGL.so.0 -l /lib/x86_64-linux-gnu/libGLdispatch.so.0 -l /lib/x86_64-linux-gnu/libgio-2.0.so.0 --appdir AppDir
|
2022-09-27 16:01:01 +00:00
|
|
|
cp external/SDL/build/${SDL_SHARED_LIBRARY} AppDir/usr/lib/libSDL2-2.0.so.0
|
2021-11-25 18:28:49 +00:00
|
|
|
./appimagetool-x86_64.AppImage AppDir
|
|
|
|
|
2022-03-29 16:50:18 +00:00
|
|
|
#VERSION=$(grep PROGRAM_VERSION_STRING es-app/src/EmulationStation.h | cut -f3 -d" " | sed s/\"//g)
|
|
|
|
#mv EmulationStation_Desktop_Edition-x86_64.AppImage EmulationStation-DE-${VERSION}-x64.AppImage
|
|
|
|
#echo -e "\nCreated AppImage EmulationStation-DE-${VERSION}-x64.AppImage"
|
2021-11-25 18:28:49 +00:00
|
|
|
|
2022-03-29 16:50:18 +00:00
|
|
|
mv EmulationStation_Desktop_Edition-x86_64.AppImage EmulationStation-DE-x64.AppImage
|
|
|
|
echo -e "\nCreated AppImage EmulationStation-DE-x64.AppImage"
|