|
|
|
@ -2,120 +2,96 @@
|
|
|
|
|
|
|
|
|
|
set -e |
|
|
|
|
|
|
|
|
|
# This Script Assumes An x86_64 Host |
|
|
|
|
if [ "$(uname -m)" != "x86_64" ]; then |
|
|
|
|
echo 'Invalid Build Architecture' |
|
|
|
|
exit 1 |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
# Add ARM Repository |
|
|
|
|
if [ ! -z "${ARM_PACKAGES_SUPPORTED}" ]; then |
|
|
|
|
sudo dpkg --add-architecture armhf |
|
|
|
|
sudo dpkg --add-architecture arm64 |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
# Update APT |
|
|
|
|
sudo apt-get update |
|
|
|
|
sudo apt-get dist-upgrade -y |
|
|
|
|
|
|
|
|
|
# Install Everything In One Go |
|
|
|
|
PKG_QUEUE='' |
|
|
|
|
queue_pkg() { |
|
|
|
|
PKG_QUEUE="${PKG_QUEUE} $@" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
# Build Tools |
|
|
|
|
queue_pkg \ |
|
|
|
|
git \ |
|
|
|
|
cmake \ |
|
|
|
|
ninja-build \ |
|
|
|
|
crossbuild-essential-armhf \ |
|
|
|
|
gcc g++ \ |
|
|
|
|
nodejs |
|
|
|
|
|
|
|
|
|
# Dependencies |
|
|
|
|
queue_pkg \ |
|
|
|
|
libfreeimage3 libfreeimage-dev \ |
|
|
|
|
libopenal-dev \ |
|
|
|
|
qemu-user \ |
|
|
|
|
patchelf |
|
|
|
|
|
|
|
|
|
# GLFW Dependencies |
|
|
|
|
queue_pkg \ |
|
|
|
|
libwayland-dev \ |
|
|
|
|
libxkbcommon-dev \ |
|
|
|
|
wayland-protocols \ |
|
|
|
|
libx11-dev \ |
|
|
|
|
libxcursor-dev \ |
|
|
|
|
libxi-dev \ |
|
|
|
|
libxinerama-dev \ |
|
|
|
|
libxrandr-dev \ |
|
|
|
|
libxext-dev |
|
|
|
|
|
|
|
|
|
# Zenity Dependencies |
|
|
|
|
queue_pkg \ |
|
|
|
|
libgtk-3-dev \ |
|
|
|
|
libglib2.0-dev |
|
|
|
|
|
|
|
|
|
# ARM Packages |
|
|
|
|
if [ ! -z "${ARM_PACKAGES_SUPPORTED}" ]; then |
|
|
|
|
# Build Tools |
|
|
|
|
# Main Script |
|
|
|
|
run() { |
|
|
|
|
# Add ARM Repository |
|
|
|
|
for arch in "$@"; do |
|
|
|
|
sudo dpkg --add-architecture "${arch}" |
|
|
|
|
done |
|
|
|
|
|
|
|
|
|
# Update APT |
|
|
|
|
sudo apt-get update |
|
|
|
|
sudo apt-get dist-upgrade -y |
|
|
|
|
|
|
|
|
|
# Install Everything In One Go |
|
|
|
|
PKG_QUEUE='' |
|
|
|
|
queue_pkg() { |
|
|
|
|
PKG_QUEUE="${PKG_QUEUE} $@" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
# Build System |
|
|
|
|
queue_pkg \ |
|
|
|
|
crossbuild-essential-arm64 |
|
|
|
|
git \ |
|
|
|
|
cmake \ |
|
|
|
|
ninja-build \ |
|
|
|
|
nodejs |
|
|
|
|
|
|
|
|
|
# Dependencies |
|
|
|
|
# Host Dependencies Needed For Compile |
|
|
|
|
queue_pkg \ |
|
|
|
|
libfreeimage3:armhf libfreeimage3:arm64 \ |
|
|
|
|
libopenal-dev:armhf libopenal-dev:arm64 |
|
|
|
|
libwayland-bin \ |
|
|
|
|
libfreeimage-dev |
|
|
|
|
|
|
|
|
|
# GLFW Dependencies |
|
|
|
|
# Host Dependencies Needed For Running |
|
|
|
|
queue_pkg \ |
|
|
|
|
libwayland-dev:armhf libwayland-dev:arm64 \ |
|
|
|
|
libxkbcommon-dev:armhf libxkbcommon-dev:arm64 \ |
|
|
|
|
libx11-dev:armhf libx11-dev:arm64 \ |
|
|
|
|
libxcursor-dev:armhf libxcursor-dev:arm64 \ |
|
|
|
|
libxi-dev:armhf libxi-dev:arm64 \ |
|
|
|
|
libxinerama-dev:armhf libxinerama-dev:arm64 \ |
|
|
|
|
libxrandr-dev:armhf libxrandr-dev:arm64 \ |
|
|
|
|
libxext-dev:armhf libxext-dev:arm64 |
|
|
|
|
|
|
|
|
|
# Zenity Dependencies |
|
|
|
|
qemu-user \ |
|
|
|
|
patchelf |
|
|
|
|
|
|
|
|
|
# Architecture-Specific Dependencies |
|
|
|
|
architecture_specific_pkg() { |
|
|
|
|
# Compiler |
|
|
|
|
queue_pkg \ |
|
|
|
|
crossbuild-essential-$1 |
|
|
|
|
|
|
|
|
|
# Dependencies |
|
|
|
|
queue_pkg \ |
|
|
|
|
libfreeimage3:$1 \ |
|
|
|
|
libopenal-dev:$1 |
|
|
|
|
|
|
|
|
|
# GLFW Dependencies |
|
|
|
|
queue_pkg \ |
|
|
|
|
libwayland-dev:$1 \ |
|
|
|
|
libxkbcommon-dev:$1 \ |
|
|
|
|
libx11-dev:$1 \ |
|
|
|
|
libxcursor-dev:$1 \ |
|
|
|
|
libxi-dev:$1 \ |
|
|
|
|
libxinerama-dev:$1 \ |
|
|
|
|
libxrandr-dev:$1 \ |
|
|
|
|
libxext-dev:$1 |
|
|
|
|
|
|
|
|
|
# Zenity Dependencies |
|
|
|
|
queue_pkg \ |
|
|
|
|
libgtk-3-dev:$1 \ |
|
|
|
|
libglib2.0-dev:$1 |
|
|
|
|
} |
|
|
|
|
for arch in "$@"; do |
|
|
|
|
architecture_specific_pkg "${arch}" |
|
|
|
|
done |
|
|
|
|
|
|
|
|
|
# Install appimagetool & appimage-builder Dependencies |
|
|
|
|
queue_pkg \ |
|
|
|
|
libgtk-3-dev:armhf libgtk-3-dev:arm64 \ |
|
|
|
|
libglib2.0-dev:armhf libglib2.0-dev:arm64 |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
# Install appimagetool & appimage-builder Dependencies |
|
|
|
|
queue_pkg \ |
|
|
|
|
python3-pip \ |
|
|
|
|
python3-setuptools \ |
|
|
|
|
python3-wheel \ |
|
|
|
|
patchelf \ |
|
|
|
|
desktop-file-utils \ |
|
|
|
|
libgdk-pixbuf2.0-dev \ |
|
|
|
|
fakeroot \ |
|
|
|
|
strace \ |
|
|
|
|
fuse \ |
|
|
|
|
gtk-update-icon-cache \ |
|
|
|
|
shared-mime-info \ |
|
|
|
|
sed |
|
|
|
|
|
|
|
|
|
# Install Queue |
|
|
|
|
sudo apt-get install --no-install-recommends -y ${PKG_QUEUE} |
|
|
|
|
|
|
|
|
|
# Download appimagetool |
|
|
|
|
sudo mkdir -p /opt |
|
|
|
|
sudo wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O /opt/appimagetool |
|
|
|
|
sudo chmod +x /opt/appimagetool |
|
|
|
|
# Workaround AppImage Issues With Docker |
|
|
|
|
cd /opt |
|
|
|
|
sudo sed -i '0,/AI\x02/{s|AI\x02|\x00\x00\x00|}' ./appimagetool |
|
|
|
|
sudo rm -rf /opt/squashfs-root /opt/appimagetool.AppDir |
|
|
|
|
sudo ./appimagetool --appimage-extract |
|
|
|
|
sudo rm -f ./appimagetool |
|
|
|
|
sudo mv /opt/squashfs-root /opt/appimagetool.AppDir |
|
|
|
|
sudo rm -f /usr/local/bin/appimagetool |
|
|
|
|
sudo ln -s /opt/appimagetool.AppDir/AppRun /usr/local/bin/appimagetool |
|
|
|
|
python3-pip \ |
|
|
|
|
python3-setuptools \ |
|
|
|
|
python3-wheel \ |
|
|
|
|
patchelf \ |
|
|
|
|
desktop-file-utils \ |
|
|
|
|
libgdk-pixbuf2.0-dev \ |
|
|
|
|
fakeroot \ |
|
|
|
|
strace \ |
|
|
|
|
fuse \ |
|
|
|
|
gtk-update-icon-cache \ |
|
|
|
|
shared-mime-info \ |
|
|
|
|
sed |
|
|
|
|
|
|
|
|
|
# Install Queue |
|
|
|
|
sudo apt-get install --no-install-recommends -y ${PKG_QUEUE} |
|
|
|
|
|
|
|
|
|
# Install appimage-builder |
|
|
|
|
sudo pip3 install 'git+https://github.com/AppImageCrafters/appimage-builder.git' |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
# Install appimage-builder |
|
|
|
|
sudo pip3 install 'git+https://github.com/AppImageCrafters/appimage-builder.git' |
|
|
|
|
# Run |
|
|
|
|
if [ "$#" -lt 1 ]; then |
|
|
|
|
run "$(dpkg-architecture -qDEB_BUILD_ARCH)" |
|
|
|
|
else |
|
|
|
|
run "$@" |
|
|
|
|
fi |
|
|
|
|