mirror of https://github.com/PCSX2/pcsx2.git
CI: Simplify Linux build
This commit is contained in:
parent
9f1483f01b
commit
c831f5759f
|
@ -107,9 +107,18 @@ jobs:
|
||||||
restore-keys: ${{ inputs.os }} ${{ inputs.platform }} ${{ inputs.compiler }} ${{ inputs.detail }} ccache
|
restore-keys: ${{ inputs.os }} ${{ inputs.platform }} ${{ inputs.compiler }} ${{ inputs.detail }} ccache
|
||||||
|
|
||||||
- name: Install Packages
|
- name: Install Packages
|
||||||
env:
|
run: |
|
||||||
COMPILER: ${{ inputs.compiler }}
|
tools/retry.sh wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
|
||||||
run: .github/workflows/scripts/linux/install-packages-qt.sh
|
sudo tools/retry.sh apt-add-repository -n 'deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-17 main'
|
||||||
|
sudo tools/retry.sh apt-get update
|
||||||
|
sudo tools/retry.sh apt-get -y install \
|
||||||
|
build-essential ccache clang-17 cmake curl extra-cmake-modules git libasound2-dev libaio-dev libavcodec-dev libavformat-dev libavutil-dev \
|
||||||
|
libcurl4-openssl-dev libdbus-1-dev libdecor-0-dev libegl-dev libevdev-dev libfontconfig-dev libfreetype-dev libfuse2 libgtk-3-dev libgudev-1.0-dev \
|
||||||
|
libharfbuzz-dev libinput-dev libopengl-dev libpcap-dev libpipewire-0.3-dev libpulse-dev libssl-dev libswresample-dev libswscale-dev libudev-dev \
|
||||||
|
libwayland-dev libx11-dev libx11-xcb-dev libxcb1-dev libxcb-composite0-dev libxcb-cursor-dev libxcb-damage0-dev libxcb-glx0-dev libxcb-icccm4-dev \
|
||||||
|
libxcb-image0-dev libxcb-keysyms1-dev libxcb-present-dev libxcb-randr0-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-shape0-dev \
|
||||||
|
libxcb-shm0-dev libxcb-sync-dev libxcb-util-dev libxcb-xfixes0-dev libxcb-xinput-dev libxcb-xkb-dev libxext-dev libxkbcommon-x11-dev libxrandr-dev \
|
||||||
|
lld-17 llvm-17 ninja-build patchelf pkg-config zlib1g-dev
|
||||||
|
|
||||||
- name: Cache Dependencies
|
- name: Cache Dependencies
|
||||||
id: cache-deps
|
id: cache-deps
|
||||||
|
@ -129,16 +138,31 @@ jobs:
|
||||||
|
|
||||||
- name: Generate CMake
|
- name: Generate CMake
|
||||||
env:
|
env:
|
||||||
COMPILER: ${{ inputs.compiler }}
|
|
||||||
ADDITIONAL_CMAKE_ARGS: ${{ inputs.cmakeflags }}
|
ADDITIONAL_CMAKE_ARGS: ${{ inputs.cmakeflags }}
|
||||||
CLANG_PATH: /usr/bin/clang-17
|
|
||||||
CLANGXX_PATH: /usr/bin/clang++-17
|
|
||||||
run: |
|
run: |
|
||||||
DEPS_PREFIX="$HOME/deps" .github/workflows/scripts/linux/generate-cmake-qt.sh
|
cmake -B build -G Ninja \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \
|
||||||
|
-DCMAKE_PREFIX_PATH="$HOME/deps" \
|
||||||
|
-DCMAKE_C_COMPILER=clang-17 \
|
||||||
|
-DCMAKE_CXX_COMPILER=clang++-17 \
|
||||||
|
-DCMAKE_EXE_LINKER_FLAGS_INIT="-fuse-ld=lld" \
|
||||||
|
-DCMAKE_MODULE_LINKER_FLAGS_INIT="-fuse-ld=lld" \
|
||||||
|
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
|
||||||
|
-DENABLE_SETCAP=OFF \
|
||||||
|
-DDISABLE_ADVANCE_SIMD=TRUE \
|
||||||
|
$ADDITIONAL_CMAKE_ARGS
|
||||||
|
|
||||||
- name: Build PCSX2
|
- name: Build PCSX2
|
||||||
working-directory: build
|
working-directory: build
|
||||||
run: ../.github/workflows/scripts/linux/compile.sh
|
run: |
|
||||||
|
# Prepare the Cache
|
||||||
|
ccache -p
|
||||||
|
ccache -z
|
||||||
|
# Build
|
||||||
|
ninja
|
||||||
|
# Save the Cache
|
||||||
|
ccache -s
|
||||||
|
|
||||||
- name: Run Tests
|
- name: Run Tests
|
||||||
working-directory: ./build
|
working-directory: ./build
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
SCRIPTDIR=$(dirname "${BASH_SOURCE[0]}")
|
SCRIPTDIR=$(dirname "${BASH_SOURCE[0]}")
|
||||||
source "$SCRIPTDIR/../linux/functions.sh"
|
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# While we use custom Qt builds for our releases, the Qt6 package will be good enough
|
# While we use custom Qt builds for our releases, the Qt6 package will be good enough
|
||||||
# for just updating translations. Saves building it for this action alone.
|
# for just updating translations. Saves building it for this action alone.
|
||||||
retry_command sudo apt-get -y install qt6-l10n-tools
|
"$SCRIPTDIR/../../../../tools/retry.sh" sudo apt-get -y install qt6-l10n-tools
|
||||||
|
|
||||||
PATH=/usr/lib/qt6/bin:$PATH "$SCRIPTDIR/../../../../pcsx2-qt/Translations/update_en_translation.sh"
|
PATH=/usr/lib/qt6/bin:$PATH "$SCRIPTDIR/../../../../pcsx2-qt/Translations/update_en_translation.sh"
|
||||||
|
|
|
@ -26,7 +26,6 @@
|
||||||
# For more information, please refer to <http://unlicense.org/>
|
# For more information, please refer to <http://unlicense.org/>
|
||||||
|
|
||||||
SCRIPTDIR=$(dirname "${BASH_SOURCE[0]}")
|
SCRIPTDIR=$(dirname "${BASH_SOURCE[0]}")
|
||||||
source "$SCRIPTDIR/functions.sh"
|
|
||||||
|
|
||||||
if [ "$#" -ne 4 ]; then
|
if [ "$#" -ne 4 ]; then
|
||||||
echo "Syntax: $0 <path to pcsx2 directory> <path to build directory> <deps prefix> <output name>"
|
echo "Syntax: $0 <path to pcsx2 directory> <path to build directory> <deps prefix> <output name>"
|
||||||
|
@ -60,17 +59,17 @@ APPIMAGETOOL=./appimagetool-x86_64.AppImage
|
||||||
PATCHELF=patchelf
|
PATCHELF=patchelf
|
||||||
|
|
||||||
if [ ! -f "$LINUXDEPLOY" ]; then
|
if [ ! -f "$LINUXDEPLOY" ]; then
|
||||||
retry_command wget -O "$LINUXDEPLOY" https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
|
"$PCSX2DIR/tools/retry.sh" wget -O "$LINUXDEPLOY" https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
|
||||||
chmod +x "$LINUXDEPLOY"
|
chmod +x "$LINUXDEPLOY"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -f "$LINUXDEPLOY_PLUGIN_QT" ]; then
|
if [ ! -f "$LINUXDEPLOY_PLUGIN_QT" ]; then
|
||||||
retry_command wget -O "$LINUXDEPLOY_PLUGIN_QT" https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
|
"$PCSX2DIR/tools/retry.sh" wget -O "$LINUXDEPLOY_PLUGIN_QT" https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
|
||||||
chmod +x "$LINUXDEPLOY_PLUGIN_QT"
|
chmod +x "$LINUXDEPLOY_PLUGIN_QT"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -f "$APPIMAGETOOL" ]; then
|
if [ ! -f "$APPIMAGETOOL" ]; then
|
||||||
retry_command wget -O "$APPIMAGETOOL" https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
|
"$PCSX2DIR/tools/retry.sh" wget -O "$APPIMAGETOOL" https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
|
||||||
chmod +x "$APPIMAGETOOL"
|
chmod +x "$APPIMAGETOOL"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -100,6 +99,7 @@ cp "$PCSX2DIR/bin/resources/icons/AppIconLarge.png" "PCSX2.png"
|
||||||
echo "Running linuxdeploy to create AppDir..."
|
echo "Running linuxdeploy to create AppDir..."
|
||||||
EXTRA_QT_PLUGINS="core;gui;network;svg;waylandclient;widgets;xcbqpa" \
|
EXTRA_QT_PLUGINS="core;gui;network;svg;waylandclient;widgets;xcbqpa" \
|
||||||
EXTRA_PLATFORM_PLUGINS="libqwayland-egl.so;libqwayland-generic.so" \
|
EXTRA_PLATFORM_PLUGINS="libqwayland-egl.so;libqwayland-generic.so" \
|
||||||
|
DEPLOY_PLATFORM_THEMES="1" \
|
||||||
QMAKE="$DEPSDIR/bin/qmake" \
|
QMAKE="$DEPSDIR/bin/qmake" \
|
||||||
NO_STRIP="1" \
|
NO_STRIP="1" \
|
||||||
$LINUXDEPLOY --plugin qt --appdir="$OUTDIR" --executable="$BUILDDIR/bin/pcsx2-qt" \
|
$LINUXDEPLOY --plugin qt --appdir="$OUTDIR" --executable="$BUILDDIR/bin/pcsx2-qt" \
|
||||||
|
|
|
@ -14,8 +14,6 @@ if [ "${INSTALLDIR:0:1}" != "/" ]; then
|
||||||
INSTALLDIR="$PWD/$INSTALLDIR"
|
INSTALLDIR="$PWD/$INSTALLDIR"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
FREETYPE=2.13.2
|
|
||||||
HARFBUZZ=8.3.1
|
|
||||||
LIBBACKTRACE=ad106d5fdd5d960bd33fae1c48a351af567fd075
|
LIBBACKTRACE=ad106d5fdd5d960bd33fae1c48a351af567fd075
|
||||||
LIBJPEG=9f
|
LIBJPEG=9f
|
||||||
LIBPNG=1.6.43
|
LIBPNG=1.6.43
|
||||||
|
@ -23,7 +21,6 @@ LIBWEBP=1.3.2
|
||||||
LZ4=b8fd2d15309dd4e605070bd4486e26b6ef814e29
|
LZ4=b8fd2d15309dd4e605070bd4486e26b6ef814e29
|
||||||
SDL=SDL2-2.30.2
|
SDL=SDL2-2.30.2
|
||||||
QT=6.7.0
|
QT=6.7.0
|
||||||
ZLIB=1.3.1
|
|
||||||
ZSTD=1.5.5
|
ZSTD=1.5.5
|
||||||
|
|
||||||
SHADERC=2024.0
|
SHADERC=2024.0
|
||||||
|
@ -35,15 +32,12 @@ mkdir -p deps-build
|
||||||
cd deps-build
|
cd deps-build
|
||||||
|
|
||||||
cat > SHASUMS <<EOF
|
cat > SHASUMS <<EOF
|
||||||
12991c4e55c506dd7f9b765933e62fd2be2e06d421505d7950a132e4f1bb484d freetype-$FREETYPE.tar.xz
|
|
||||||
19a54fe9596f7a47c502549fce8e8a10978c697203774008cc173f8360b19a9a harfbuzz-$HARFBUZZ.tar.gz
|
|
||||||
fd6f417fe9e3a071cf1424a5152d926a34c4a3c5070745470be6cf12a404ed79 $LIBBACKTRACE.zip
|
fd6f417fe9e3a071cf1424a5152d926a34c4a3c5070745470be6cf12a404ed79 $LIBBACKTRACE.zip
|
||||||
04705c110cb2469caa79fb71fba3d7bf834914706e9641a4589485c1f832565b jpegsrc.v$LIBJPEG.tar.gz
|
04705c110cb2469caa79fb71fba3d7bf834914706e9641a4589485c1f832565b jpegsrc.v$LIBJPEG.tar.gz
|
||||||
6a5ca0652392a2d7c9db2ae5b40210843c0bbc081cbd410825ab00cc59f14a6c libpng-$LIBPNG.tar.xz
|
6a5ca0652392a2d7c9db2ae5b40210843c0bbc081cbd410825ab00cc59f14a6c libpng-$LIBPNG.tar.xz
|
||||||
2a499607df669e40258e53d0ade8035ba4ec0175244869d1025d460562aa09b4 libwebp-$LIBWEBP.tar.gz
|
2a499607df669e40258e53d0ade8035ba4ec0175244869d1025d460562aa09b4 libwebp-$LIBWEBP.tar.gz
|
||||||
0728800155f3ed0a0c87e03addbd30ecbe374f7b080678bbca1506051d50dec3 $LZ4.tar.gz
|
0728800155f3ed0a0c87e03addbd30ecbe374f7b080678bbca1506051d50dec3 $LZ4.tar.gz
|
||||||
891d66ac8cae51361d3229e3336ebec1c407a8a2a063b61df14f5fdf3ab5ac31 $SDL.tar.gz
|
891d66ac8cae51361d3229e3336ebec1c407a8a2a063b61df14f5fdf3ab5ac31 $SDL.tar.gz
|
||||||
9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23 zlib-$ZLIB.tar.gz
|
|
||||||
9c4396cc829cfae319a6e2615202e82aad41372073482fce286fac78646d3ee4 zstd-$ZSTD.tar.gz
|
9c4396cc829cfae319a6e2615202e82aad41372073482fce286fac78646d3ee4 zstd-$ZSTD.tar.gz
|
||||||
11b2e29e2e52fb0e3b453ea13bbe51a10fdff36e1c192d8868c5a40233b8b254 qtbase-everywhere-src-$QT.tar.xz
|
11b2e29e2e52fb0e3b453ea13bbe51a10fdff36e1c192d8868c5a40233b8b254 qtbase-everywhere-src-$QT.tar.xz
|
||||||
516ce07ec8dd5a11c59816fe33ddb71d4f691d0ebbc1798ac338f23b86c029a7 qtimageformats-everywhere-src-$QT.tar.xz
|
516ce07ec8dd5a11c59816fe33ddb71d4f691d0ebbc1798ac338f23b86c029a7 qtimageformats-everywhere-src-$QT.tar.xz
|
||||||
|
@ -90,15 +84,6 @@ make
|
||||||
make install
|
make install
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
echo "Building Zlib..."
|
|
||||||
rm -fr "zlib-$ZLIB"
|
|
||||||
tar xf "zlib-$ZLIB.tar.gz"
|
|
||||||
cd "zlib-$ZLIB"
|
|
||||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DBUILD_SHARED_LIBS=ON -DZLIB_BUILD_EXAMPLES=OFF -B build -G Ninja
|
|
||||||
cmake --build build --parallel
|
|
||||||
ninja -C build install
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
echo "Building libpng..."
|
echo "Building libpng..."
|
||||||
rm -fr "libpng-$LIBPNG"
|
rm -fr "libpng-$LIBPNG"
|
||||||
tar xf "libpng-$LIBPNG.tar.xz"
|
tar xf "libpng-$LIBPNG.tar.xz"
|
||||||
|
@ -128,33 +113,6 @@ cmake --build build-dir --parallel
|
||||||
ninja -C build-dir install
|
ninja -C build-dir install
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
echo "Building FreeType without HarfBuzz..."
|
|
||||||
rm -fr "freetype-$FREETYPE"
|
|
||||||
tar xf "freetype-$FREETYPE.tar.xz"
|
|
||||||
cd "freetype-$FREETYPE"
|
|
||||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DBUILD_SHARED_LIBS=ON -DFT_REQUIRE_ZLIB=ON -DFT_REQUIRE_PNG=ON -DFT_DISABLE_BZIP2=TRUE -DFT_DISABLE_BROTLI=TRUE -DFT_DISABLE_HARFBUZZ=TRUE -B build -G Ninja
|
|
||||||
cmake --build build --parallel
|
|
||||||
ninja -C build install
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
echo "Building HarfBuzz..."
|
|
||||||
rm -fr "harfbuzz-$HARFBUZZ"
|
|
||||||
tar xf "harfbuzz-$HARFBUZZ.tar.gz"
|
|
||||||
cd "harfbuzz-$HARFBUZZ"
|
|
||||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DBUILD_SHARED_LIBS=ON -DHB_BUILD_UTILS=OFF -B build -G Ninja
|
|
||||||
cmake --build build --parallel
|
|
||||||
ninja -C build install
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
echo "Building FreeType with HarfBuzz..."
|
|
||||||
rm -fr "freetype-$FREETYPE"
|
|
||||||
tar xf "freetype-$FREETYPE.tar.xz"
|
|
||||||
cd "freetype-$FREETYPE"
|
|
||||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DBUILD_SHARED_LIBS=ON -DFT_REQUIRE_ZLIB=ON -DFT_REQUIRE_PNG=ON -DFT_DISABLE_BZIP2=TRUE -DFT_DISABLE_BROTLI=TRUE -DFT_REQUIRE_HARFBUZZ=TRUE -B build -G Ninja
|
|
||||||
cmake --build build --parallel
|
|
||||||
ninja -C build install
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
echo "Building Zstandard..."
|
echo "Building Zstandard..."
|
||||||
rm -fr "zstd-$ZSTD"
|
rm -fr "zstd-$ZSTD"
|
||||||
tar xf "zstd-$ZSTD.tar.gz"
|
tar xf "zstd-$ZSTD.tar.gz"
|
||||||
|
@ -195,7 +153,7 @@ tar xf "qtbase-everywhere-src-$QT.tar.xz"
|
||||||
cd "qtbase-everywhere-src-$QT"
|
cd "qtbase-everywhere-src-$QT"
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
../configure -prefix "$INSTALLDIR" -release -dbus-linked -gui -widgets -fontconfig -qt-doubleconversion -ssl -openssl-runtime -opengl desktop -qpa xcb,wayland -xkbcommon -- -DFEATURE_dbus=ON -DFEATURE_icu=OFF -DFEATURE_printsupport=OFF -DFEATURE_sql=OFF -DFEATURE_system_png=ON -DFEATURE_system_jpeg=ON -DFEATURE_system_zlib=ON -DFEATURE_system_freetype=ON -DFEATURE_system_harfbuzz=ON
|
../configure -prefix "$INSTALLDIR" -release -dbus-linked -gui -widgets -fontconfig -qt-doubleconversion -ssl -openssl-runtime -opengl desktop -qpa xcb,wayland -xkbcommon -xcb -gtk -- -DFEATURE_dbus=ON -DFEATURE_icu=OFF -DFEATURE_printsupport=OFF -DFEATURE_sql=OFF -DFEATURE_system_png=ON -DFEATURE_system_jpeg=ON -DFEATURE_system_zlib=ON -DFEATURE_system_freetype=ON -DFEATURE_system_harfbuzz=ON
|
||||||
cmake --build . --parallel
|
cmake --build . --parallel
|
||||||
ninja install
|
ninja install
|
||||||
cd ../../
|
cd ../../
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
if [ -n "${GITHUB_ACTIONS}" ]; then
|
|
||||||
echo "Warning: Running this script outside of GitHub Actions isn't recommended."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Prepare the Cache
|
|
||||||
ccache -p
|
|
||||||
ccache -z
|
|
||||||
# Build
|
|
||||||
ninja
|
|
||||||
# Save the Cache
|
|
||||||
ccache -s
|
|
|
@ -32,17 +32,27 @@
|
||||||
"modules/22-shaderc.json",
|
"modules/22-shaderc.json",
|
||||||
{
|
{
|
||||||
"name": "pcsx2",
|
"name": "pcsx2",
|
||||||
"buildsystem": "simple",
|
"buildsystem": "cmake-ninja",
|
||||||
|
"builddir": true,
|
||||||
|
"no-make-install": true,
|
||||||
"build-options": {
|
"build-options": {
|
||||||
"strip": false,
|
"strip": false,
|
||||||
"no-debuginfo": true,
|
"no-debuginfo": true,
|
||||||
"env": {
|
"cflags": "",
|
||||||
"DEPS_PREFIX": "/app",
|
"cflags-override": true,
|
||||||
"COMPILER": "clang",
|
"cxxflags": "",
|
||||||
"CLANG_PATH": "/usr/lib/sdk/llvm17/bin/clang",
|
"cxxflags-override": true,
|
||||||
"CLANGXX_PATH": "/usr/lib/sdk/llvm17/bin/clang++",
|
"config-opts": [
|
||||||
"ADDITIONAL_CMAKE_ARGS": "-DUSE_LINKED_FFMPEG=ON"
|
"-DCMAKE_BUILD_TYPE=Release",
|
||||||
}
|
"-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON",
|
||||||
|
"-DCMAKE_C_COMPILER=/usr/lib/sdk/llvm17/bin/clang",
|
||||||
|
"-DCMAKE_CXX_COMPILER=/usr/lib/sdk/llvm17/bin/clang++",
|
||||||
|
"-DCMAKE_EXE_LINKER_FLAGS_INIT=-fuse-ld=lld",
|
||||||
|
"-DCMAKE_MODULE_LINKER_FLAGS_INIT=-fuse-ld=lld",
|
||||||
|
"-DCMAKE_SHARED_LINKER_FLAGS_INIT=-fuse-ld=lld",
|
||||||
|
"-DUSE_LINKED_FFMPEG=ON",
|
||||||
|
"-DDISABLE_ADVANCE_SIMD=TRUE"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"sources": [
|
"sources": [
|
||||||
{
|
{
|
||||||
|
@ -50,18 +60,13 @@
|
||||||
"path": "../../../../.."
|
"path": "../../../../.."
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"build-commands": [
|
|
||||||
".github/workflows/scripts/linux/generate-cmake-qt.sh",
|
|
||||||
"cd build && ../.github/workflows/scripts/linux/compile.sh && cd ..",
|
|
||||||
"cp -a build/bin ${FLATPAK_DEST}",
|
|
||||||
"cd build && ninja unittests && cd .."
|
|
||||||
],
|
|
||||||
"post-install": [
|
"post-install": [
|
||||||
"install -Dm644 bin/resources/icons/AppIconLarge.png ${FLATPAK_DEST}/share/icons/hicolor/512x512/apps/net.pcsx2.PCSX2.png",
|
"cp -a bin \"${FLATPAK_DEST}\"",
|
||||||
"install -Dm644 .github/workflows/scripts/linux/pcsx2-qt.desktop ${FLATPAK_DEST}/share/applications/net.pcsx2.PCSX2.desktop",
|
"install -Dm644 \"${FLATPAK_BUILDER_BUILDDIR}/bin/resources/icons/AppIconLarge.png\" \"${FLATPAK_DEST}/share/icons/hicolor/512x512/apps/net.pcsx2.PCSX2.png\"",
|
||||||
"desktop-file-edit --set-key=Icon --set-value=net.pcsx2.PCSX2 ${FLATPAK_DEST}/share/applications/net.pcsx2.PCSX2.desktop",
|
"install -Dm644 \"${FLATPAK_BUILDER_BUILDDIR}/.github/workflows/scripts/linux/pcsx2-qt.desktop\" \"${FLATPAK_DEST}/share/applications/net.pcsx2.PCSX2.desktop\"",
|
||||||
"install -Dm644 .github/workflows/scripts/linux/flatpak/net.pcsx2.PCSX2.metainfo.xml ${FLATPAK_DEST}/share/metainfo/net.pcsx2.PCSX2.metainfo.xml",
|
"desktop-file-edit --set-key=Icon --set-value=net.pcsx2.PCSX2 \"${FLATPAK_DEST}/share/applications/net.pcsx2.PCSX2.desktop\"",
|
||||||
"mkdir -p ${FLATPAK_DEST}/lib/ffmpeg"
|
"install -Dm644 \"${FLATPAK_BUILDER_BUILDDIR}/.github/workflows/scripts/linux/flatpak/net.pcsx2.PCSX2.metainfo.xml\" \"${FLATPAK_DEST}/share/metainfo/net.pcsx2.PCSX2.metainfo.xml\"",
|
||||||
|
"mkdir -p \"${FLATPAK_DEST}/lib/ffmpeg\""
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,46 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
if [[ -z "${DEPS_PREFIX}" ]]; then
|
|
||||||
echo "DEPS_PREFIX is not set."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Using build dependencies from: ${DEPS_PREFIX}"
|
|
||||||
|
|
||||||
if [ "${COMPILER}" = "clang" ]; then
|
|
||||||
if [[ -z "${CLANG_PATH}" ]] || [[ -z "${CLANGXX_PATH}" ]]; then
|
|
||||||
echo "CLANG_PATH or CLANGXX_PATH is not set."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Using clang toolchain"
|
|
||||||
cat > "clang-toolchain.cmake" << EOF
|
|
||||||
set(CMAKE_C_COMPILER "${CLANG_PATH}")
|
|
||||||
set(CMAKE_CXX_COMPILER "${CLANGXX_PATH}")
|
|
||||||
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")
|
|
||||||
EOF
|
|
||||||
ADDITIONAL_CMAKE_ARGS="$ADDITIONAL_CMAKE_ARGS -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_TOOLCHAIN_FILE=clang-toolchain.cmake"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Additional CMake Args - ${ADDITIONAL_CMAKE_ARGS}"
|
|
||||||
|
|
||||||
# Generate CMake into ./build
|
|
||||||
# DISABLE_ADVANCE_SIMD is needed otherwise we end up doing -march=native.
|
|
||||||
|
|
||||||
# shellcheck disable=SC2086
|
|
||||||
cmake \
|
|
||||||
-B build \
|
|
||||||
-G Ninja \
|
|
||||||
$ADDITIONAL_CMAKE_ARGS \
|
|
||||||
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
|
||||||
-DX11_API=ON \
|
|
||||||
-DWAYLAND_API=ON \
|
|
||||||
-DENABLE_SETCAP=OFF \
|
|
||||||
-DCMAKE_PREFIX_PATH="${DEPS_PREFIX}" \
|
|
||||||
-DDISABLE_ADVANCE_SIMD=TRUE
|
|
||||||
|
|
|
@ -1,85 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
SCRIPTDIR=$(dirname "${BASH_SOURCE[0]}")
|
|
||||||
source "$SCRIPTDIR/functions.sh"
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Packages - Build and Qt
|
|
||||||
declare -a BUILD_PACKAGES=(
|
|
||||||
"build-essential"
|
|
||||||
"g++"
|
|
||||||
"git"
|
|
||||||
"cmake"
|
|
||||||
"ccache"
|
|
||||||
"ninja-build"
|
|
||||||
"patchelf"
|
|
||||||
"libfuse2"
|
|
||||||
"libglib2.0-dev"
|
|
||||||
"libfontconfig1-dev"
|
|
||||||
"libharfbuzz-dev"
|
|
||||||
"libjpeg-dev"
|
|
||||||
"liblz4-dev"
|
|
||||||
"libpng-dev"
|
|
||||||
"libfreetype-dev"
|
|
||||||
"libinput-dev"
|
|
||||||
"libwebp-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"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Packages - PCSX2
|
|
||||||
declare -a PCSX2_PACKAGES=(
|
|
||||||
"extra-cmake-modules"
|
|
||||||
"libaio-dev"
|
|
||||||
"libasound2-dev"
|
|
||||||
"libbz2-dev"
|
|
||||||
"libcurl4-openssl-dev"
|
|
||||||
"libdbus-1-dev"
|
|
||||||
"libegl1-mesa-dev"
|
|
||||||
"libgl1-mesa-dev"
|
|
||||||
"libgtk-3-dev"
|
|
||||||
"libharfbuzz-dev"
|
|
||||||
"libjpeg-dev"
|
|
||||||
"libpcap0.8-dev"
|
|
||||||
"libpng-dev"
|
|
||||||
"libpulse-dev"
|
|
||||||
"librsvg2-dev"
|
|
||||||
"libsamplerate0-dev"
|
|
||||||
"libudev-dev"
|
|
||||||
"libx11-xcb-dev"
|
|
||||||
"libavcodec-dev"
|
|
||||||
"libavformat-dev"
|
|
||||||
"libavutil-dev"
|
|
||||||
"libswresample-dev"
|
|
||||||
"libswscale-dev"
|
|
||||||
"pkg-config"
|
|
||||||
"zlib1g-dev"
|
|
||||||
)
|
|
||||||
|
|
||||||
if [ "${COMPILER}" = "clang" ]; then
|
|
||||||
BUILD_PACKAGES+=("llvm-17" "lld-17" "clang-17")
|
|
||||||
|
|
||||||
# Ubuntu 22.04 doesn't ship with LLVM 16, so we need to pull it from the llvm.org repos.
|
|
||||||
retry_command wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
|
|
||||||
sudo apt-add-repository -n 'deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-17 main'
|
|
||||||
fi
|
|
||||||
|
|
||||||
retry_command sudo apt-get -qq update && break
|
|
||||||
|
|
||||||
# Install packages needed for building
|
|
||||||
echo "Will install the following packages for building - ${BUILD_PACKAGES[*]}"
|
|
||||||
retry_command sudo apt-get -y install "${BUILD_PACKAGES[@]}"
|
|
||||||
|
|
||||||
# Install packages needed by pcsx2
|
|
||||||
PCSX2_PACKAGES=("${PCSX2_PACKAGES[@]}")
|
|
||||||
echo "Will install the following packages for pcsx2 - ${PCSX2_PACKAGES[*]}"
|
|
||||||
retry_command sudo apt-get -y install "${PCSX2_PACKAGES[@]}"
|
|
|
@ -18,7 +18,7 @@ find_package(Zstd 1.5.5 REQUIRED)
|
||||||
find_package(LZ4 REQUIRED)
|
find_package(LZ4 REQUIRED)
|
||||||
find_package(WebP REQUIRED) # v1.3.2, spews an error on Linux because no pkg-config.
|
find_package(WebP REQUIRED) # v1.3.2, spews an error on Linux because no pkg-config.
|
||||||
find_package(SDL2 2.30.2 REQUIRED)
|
find_package(SDL2 2.30.2 REQUIRED)
|
||||||
find_package(Freetype 2.13.1 REQUIRED)
|
find_package(Freetype 2.11.1 REQUIRED)
|
||||||
|
|
||||||
if(USE_VULKAN)
|
if(USE_VULKAN)
|
||||||
find_package(Shaderc REQUIRED)
|
find_package(Shaderc REQUIRED)
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
RETRIES=10
|
||||||
|
|
||||||
|
for i in $(seq 1 "$RETRIES"); do
|
||||||
|
"$@" && break
|
||||||
|
if [ "$i" == "$RETRIES" ]; then
|
||||||
|
echo "Command \"$@\" failed after ${RETRIES} retries."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
exit 0
|
Loading…
Reference in New Issue