add appimage builder script
This commit is contained in:
parent
1c5794d6a3
commit
f82a0ecb69
1 changed files with 130 additions and 0 deletions
130
tools/build_appimage.sh
Normal file
130
tools/build_appimage.sh
Normal file
|
@ -0,0 +1,130 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Tested with
|
||||
# appimagecrafters/appimage-builder
|
||||
# and
|
||||
# centos:centos-7
|
||||
|
||||
# config
|
||||
if [ -z "$GAME_ID" ]; then
|
||||
if [ $# -gt 0 ]; then
|
||||
export GAME_ID="$1"
|
||||
else
|
||||
echo "Need GAME_ID set or passed as first argument"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
if [ -z "$GAME_NAME" ]; then
|
||||
if [ $# -gt 1 ]; then
|
||||
export GAME_NAME="$2"
|
||||
else
|
||||
echo "Need GAME_NAME set or passed as second argument"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
if [ -z "$GAME_VERSION" ]; then
|
||||
if [ $# -gt 2 ]; then
|
||||
export GAME_VERSION="$3"
|
||||
else
|
||||
echo "Need GAME_VERSION set or passed as third argument"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
export GAME_ARCH=$(uname -m)
|
||||
|
||||
CENTOS=`which yum || true`
|
||||
if [ -n "$CENTOS" ]; then
|
||||
# centos (>= 7) build tools
|
||||
yum install -yy centos-release-scl && yum install -yy git devtoolset-7-toolchain
|
||||
yum install -yy zlib-devel file
|
||||
scl enable devtoolset-7 bash
|
||||
# centos SDL dependencies
|
||||
yum install -yy libX11-devel libXext-devel libXrandr-devel libXi-devel libXfixes-devel libXcursor-devel
|
||||
yum install -yy pulseaudio-libs-devel
|
||||
yum install -yy mesa-libGL-devel
|
||||
yum install -yy wayland-devel
|
||||
else
|
||||
# ubuntu (>= 18.04) build tools
|
||||
apt-get update && apt-get install -yy git build-essential
|
||||
apt-get install -yy zlib1g-dev file
|
||||
# ubuntu SDL dependencies
|
||||
apt-get install -yy libx11-dev libxext-dev libxrandr-dev libxi-dev libxfixes-dev libxcursor-dev
|
||||
apt-get install -yy libpulse-dev
|
||||
apt-get install -yy libgl1-mesa-dev libgles2-mesa-dev
|
||||
apt-get install -yy libwayland-dev
|
||||
fi
|
||||
|
||||
# cmake
|
||||
curl -L -O https://cmake.org/files/v3.20/cmake-3.20.0.tar.gz
|
||||
tar zxf cmake-3.*
|
||||
pushd cmake-3.*
|
||||
sed -i 's/cmake_options="-DCMAKE_BOOTSTRAP=1"/cmake_options="-DCMAKE_BOOTSTRAP=1 -DCMAKE_USE_OPENSSL=OFF"/' bootstrap
|
||||
./bootstrap --prefix=/usr/local
|
||||
make -j
|
||||
make install
|
||||
popd
|
||||
|
||||
git clone --depth 1 https://github.com/Wargus/stratagus
|
||||
git clone --depth 1 https://github.com/Wargus/${GAME_ID}
|
||||
|
||||
pushd stratagus
|
||||
git submodule update --init --recursive
|
||||
mkdir build
|
||||
pushd build
|
||||
cmake .. \
|
||||
-DBUILD_VENDORED_LUA=ON \
|
||||
-DBUILD_VENDORED_SDL=ON \
|
||||
-DBUILD_VENDORED_MEDIA_LIBS=ON \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DGAMEDIR=/usr/bin
|
||||
make -j install DESTDIR=../../AppDir
|
||||
popd
|
||||
popd
|
||||
pushd ${GAME_ID}
|
||||
git submodule update --init --recursive
|
||||
mkdir build
|
||||
pushd build
|
||||
cmake .. \
|
||||
-DENABLE_VENDORED_LIBS=ON \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DSTRATAGUS_INCLUDE_DIR=$PWD/../../stratagus/gameheaders \
|
||||
-DSTRATAGUS=stratagus \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DDATA_PATH=../../share/games/stratagus/${GAME_ID}/ \
|
||||
-DGAMEDIR=/usr/bin \
|
||||
-DICONDIR=/usr/share/icons/default/64x64/ \
|
||||
-DGAMEDIRABS=""
|
||||
make -j install DESTDIR=../../AppDir
|
||||
popd
|
||||
popd
|
||||
|
||||
if [ -n "$CENTOS" ]; then
|
||||
# using linuxdeploy
|
||||
echo '#!/bin/sh' > AppDir/AppRun
|
||||
echo -n 'exec $APPDIR/usr/bin/' >> AppDir/AppRun
|
||||
echo -n "${GAME_ID}" >> AppDir/AppRun
|
||||
echo -n ' --argv0=$APPDIR/usr/bin/' >> AppDir/AppRun
|
||||
echo -n "${GAME_ID}" >> AppDir/AppRun
|
||||
echo ' $@' >> AppDir/AppRun
|
||||
chmod +x AppDir/AppRun
|
||||
cat AppDir/AppRun
|
||||
curl -L -O "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage"
|
||||
chmod +x linuxdeploy-x86_64.AppImage
|
||||
./linuxdeploy-x86_64.AppImage --appimage-extract-and-run --appdir AppDir --output appimage
|
||||
else
|
||||
# using appimage-builder
|
||||
echo "version: 1" > appimagebuilder.yaml
|
||||
echo "AppDir:" >> appimagebuilder.yaml
|
||||
echo " path: ./AppDir" >> appimagebuilder.yaml
|
||||
echo " app_info:" >> appimagebuilder.yaml
|
||||
echo " id: com.stratagus.{{GAME_ID}}" >> appimagebuilder.yaml
|
||||
echo " name: '{{GAME_NAME}}'" >> appimagebuilder.yaml
|
||||
echo " icon: '{{GAME_ID}}'" >> appimagebuilder.yaml
|
||||
echo " version: '{{GAME_VERSION}}'" >> appimagebuilder.yaml
|
||||
echo " exec: usr/bin/{{GAME_ID}}" >> appimagebuilder.yaml
|
||||
echo ' exec_args: --argv0=${APPDIR}/usr/bin/{{GAME_ID}} $@' >> appimagebuilder.yaml
|
||||
echo "AppImage:" >> appimagebuilder.yaml
|
||||
echo " arch: '{{GAME_ARCH}}'" >> appimagebuilder.yaml
|
||||
appimage-builder --recipe appimagebuilder.yaml
|
||||
fi
|
Loading…
Reference in a new issue