diff --git a/.github/workflows/rolling-release.yml b/.github/workflows/rolling-release.yml
index b9f2a3151..e63962c85 100644
--- a/.github/workflows/rolling-release.yml
+++ b/.github/workflows/rolling-release.yml
@@ -202,7 +202,7 @@ jobs:
linux-build:
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v2.3.1
with:
@@ -212,14 +212,16 @@ jobs:
shell: bash
run: |
# Workaround for https://github.com/actions/runner-images/issues/675
- # TODO: Update to LLVM 18
+ scripts/retry.sh wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
+ sudo scripts/retry.sh apt-add-repository -n 'deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-16 main'
+
sudo scripts/retry.sh apt-get update &&
sudo scripts/retry.sh apt-get -y install \
cmake ninja-build ccache libegl1-mesa-dev libevdev-dev libwayland-dev libwayland-egl-backend-dev libxrandr-dev libdbus-1-dev \
extra-cmake-modules libcurl4-openssl-dev libssl-dev libasound2-dev libpulse-dev libx11-xcb-dev build-essential git libclang-dev \
libclang-11-dev libclang-12-dev patchelf libglib2.0-dev libfontconfig1-dev libharfbuzz-dev libjpeg-dev libpng-dev libfreetype-dev \
libinput-dev libxcb-*-dev libxkbcommon-dev libxkbcommon-x11-dev libxrender-dev libwayland-dev libgl1-mesa-dev libegl-dev \
- libegl1-mesa-dev libgl1-mesa-dev libssl-dev libx11-dev libx11-xcb-dev llvm-12 lld-12 clang-12
+ libegl1-mesa-dev libgl1-mesa-dev libssl-dev libx11-dev libx11-xcb-dev libfuse2 llvm-16 lld-16 clang-16
- name: Cache Dependencies
id: cache-deps
@@ -237,10 +239,10 @@ jobs:
run: |
mkdir build
cd build
- cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_NOGUI_FRONTEND=OFF -DBUILD_QT_FRONTEND=ON -DBUILD_TESTS=OFF -DUSE_EGL=ON -DUSE_SDL2=ON -DUSE_WAYLAND=ON -DUSE_X11=ON -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_PREFIX_PATH=$HOME/deps -DCMAKE_TOOLCHAIN_FILE=../scripts/clang-toolchain.cmake ..
+ cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_NOGUI_FRONTEND=OFF -DBUILD_QT_FRONTEND=ON -DBUILD_TESTS=OFF -DUSE_WAYLAND=ON -DUSE_X11=ON -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_PREFIX_PATH=$HOME/deps -DCMAKE_TOOLCHAIN_FILE=../scripts/clang-toolchain.cmake ..
cmake --build . --parallel
cd ..
- scripts/make-appimage.sh $(realpath ./build) $(realpath .) $HOME/deps DuckStation-x64
+ scripts/make-appimage.sh $(realpath .) $(realpath ./build) $HOME/deps DuckStation-x64
- name: Upload Qt AppImage
uses: actions/upload-artifact@v1
@@ -262,7 +264,7 @@ jobs:
- name: Generate AppStream XML
run: |
- scripts/flatpak/generate-metainfo.sh scripts/flatpak/org.duckstation.duckstation.metainfo.xml
+ scripts/generate-metainfo.sh scripts/flatpak/org.duckstation.duckstation.metainfo.xml
cat scripts/flatpak/org.duckstation.duckstation.metainfo.xml
flatpak run org.freedesktop.appstream-glib validate scripts/flatpak/org.duckstation.duckstation.metainfo.xml
diff --git a/scripts/clang-toolchain.cmake b/scripts/clang-toolchain.cmake
index 856772e7b..7a601d668 100644
--- a/scripts/clang-toolchain.cmake
+++ b/scripts/clang-toolchain.cmake
@@ -1,5 +1,5 @@
-set(CMAKE_C_COMPILER /usr/bin/clang-12)
-set(CMAKE_CXX_COMPILER /usr/bin/clang++-12)
+set(CMAKE_C_COMPILER /usr/bin/clang-16)
+set(CMAKE_CXX_COMPILER /usr/bin/clang++-16)
set(CMAKE_EXE_LINKER_FLAGS_INIT "-fuse-ld=lld")
set(CMAKE_MODULE_LINKER_FLAGS_INIT "-fuse-ld=lld")
-set(CMAKE_SHARED_LINKER_FLAGS_INIT "-fuse-ld=lld")
\ No newline at end of file
+set(CMAKE_SHARED_LINKER_FLAGS_INIT "-fuse-ld=lld")
diff --git a/scripts/flatpak/duckstation-qt.desktop b/scripts/duckstation-qt.desktop
similarity index 100%
rename from scripts/flatpak/duckstation-qt.desktop
rename to scripts/duckstation-qt.desktop
diff --git a/scripts/duckstation-qt.png b/scripts/duckstation-qt.png
new file mode 100644
index 000000000..cf342223a
Binary files /dev/null and b/scripts/duckstation-qt.png differ
diff --git a/scripts/flatpak/org.duckstation.duckstation.json b/scripts/flatpak/org.duckstation.duckstation.json
index b95a29821..67067e395 100644
--- a/scripts/flatpak/org.duckstation.duckstation.json
+++ b/scripts/flatpak/org.duckstation.duckstation.json
@@ -47,8 +47,8 @@
],
"post-install": [
"cp -a \"${FLATPAK_BUILDER_BUILDDIR}/bin\" ${FLATPAK_DEST}",
- "install -Dm644 data/resources/images/duck.png ${FLATPAK_DEST}/share/icons/hicolor/512x512/apps/org.duckstation.duckstation.png",
- "install -Dm644 scripts/flatpak/duckstation-qt.desktop ${FLATPAK_DEST}/share/applications/org.duckstation.duckstation.desktop",
+ "install -Dm644 scripts/duckstation-qt.png ${FLATPAK_DEST}/share/icons/hicolor/512x512/apps/org.duckstation.duckstation.png",
+ "install -Dm644 scripts/duckstation-qt.desktop ${FLATPAK_DEST}/share/applications/org.duckstation.duckstation.desktop",
"desktop-file-edit --set-key=Icon --set-value=org.duckstation.duckstation ${FLATPAK_DEST}/share/applications/org.duckstation.duckstation.desktop",
"install -Dm644 scripts/flatpak/org.duckstation.duckstation.metainfo.xml ${FLATPAK_DEST}/share/metainfo/org.duckstation.duckstation.metainfo.xml"
]
diff --git a/scripts/flatpak/generate-metainfo.sh b/scripts/generate-metainfo.sh
similarity index 100%
rename from scripts/flatpak/generate-metainfo.sh
rename to scripts/generate-metainfo.sh
diff --git a/scripts/make-appimage.sh b/scripts/make-appimage.sh
index 7b9f6e996..ca029b480 100755
--- a/scripts/make-appimage.sh
+++ b/scripts/make-appimage.sh
@@ -25,278 +25,146 @@
#
# For more information, please refer to
+SCRIPTDIR=$(dirname "${BASH_SOURCE[0]}")
+
+function retry_command {
+ # Package servers tend to be unreliable at times..
+ # Retry a bunch of times.
+ local RETRIES=10
+
+ for i in $(seq 1 "$RETRIES"); do
+ "$@" && break
+ if [ "$i" == "$RETRIES" ]; then
+ echo "Command \"$@\" failed after ${RETRIES} retries."
+ exit 1
+ fi
+ done
+}
+
if [ "$#" -ne 4 ]; then
- echo "Syntax: $0