Build RPCSX #270
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build RPCSX | |
on: | |
workflow_dispatch: | |
jobs: | |
build-rpcsx: | |
runs-on: ubuntu-latest | |
env: | |
clang_ver: 17 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
repository: RPCSX/rpcsx # qurious-pixel/rpcsx # | |
ref: master # devel # v20231111 # | |
submodules: recursive | |
- name: Checkout AppImage Repo | |
uses: actions/checkout@v4 | |
with: | |
clean: false | |
path: ci | |
- name: Checkout UI Repo | |
uses: actions/checkout@v4 | |
with: | |
repository: qurious-pixel/RPCSX_UI_REDESIGN | |
ref: pkg_extract | |
clean: false | |
path: ui | |
- name: Cache CMake Configuration | |
uses: actions/cache@v4 | |
env: | |
cache-name: ${{ runner.os }}-qt-cache-cmake-configuration | |
with: | |
path: | | |
${{github.workspace}}/build | |
key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }} | |
restore-keys: | | |
${{ env.cache-name }}- | |
- name: Setup dependencies | |
run: | | |
sudo apt update | |
sudo apt install -y cmake build-essential libunwind-dev yad \ | |
libglfw3-dev libvulkan-dev vulkan-validationlayers-dev libsox-dev \ | |
spirv-tools glslang-tools libspirv-cross-c-shared-dev libfuse2 \ | |
qt6-base-dev | |
echo "deb http://azure.archive.ubuntu.com/ubuntu noble main universe" | sudo tee /etc/apt/sources.list | |
sudo apt update | |
sudo apt install g++-14 ninja-build | |
#- name: Setup Clang | |
# run: | | |
# wget https://apt.llvm.org/llvm.sh | |
# chmod +x ./llvm.sh | |
# sudo ./llvm.sh ${{ env.clang_ver }} | |
- name: Setup Vulkan Headers | |
run: | | |
VULKANVER=1.3.290 | |
curl -sSfLo Vulkan-Headers.tar.gz https://github.com/KhronosGroup/Vulkan-Headers/archive/v${VULKANVER}.tar.gz | |
tar -xf Vulkan-Headers*.tar.gz | |
cd Vulkan-Headers*/ | |
cmake -B build -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=g++-14 -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_INSTALL_PREFIX=/usr | |
cmake --build build -j$(($(nproc) + 2)) | |
sudo cmake --build build --target install | |
- name: Setup SPIRV Cross | |
run: | | |
git clone https://github.com/KhronosGroup/SPIRV-Cross | |
cd SPIRV-Cross | |
mkdir build && cd build | |
cmake .. | |
cmake --build . | |
sudo make install | |
- name: Setup Cryptopp | |
run: | | |
git clone https://github.com/weidai11/cryptopp.git | |
cd cryptopp | |
make -j$(nproc) && sudo make install | |
- name: Setup Zlib-ng | |
run: | | |
git clone https://github.com/zlib-ng/zlib-ng.git | |
cd zlib-ng | |
./configure && make -j$(nproc) && sudo make install | |
- name: Build RPCSX | |
run: | | |
cmake -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=g++-14 -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -GNinja && \ | |
cmake --build build --parallel | |
ls -al build/bin | |
- name: Build RPCSX UI | |
run: | | |
cd ui/ | |
/usr/lib/qt6/bin/qmake | |
CXX=g++-14 make -j$(nproc) | |
- name: Package RPCSX AppImage | |
run: | | |
chmod +x ci/.github/assets/appimage.sh | |
ci/.github/assets/appimage.sh | |
mkdir -p artifacts | |
cp rpcsx.AppImage artifacts/ | |
#cp build/bin/rpcsx-* artifacts/ | |
- name: Upload RPCSX | |
uses: actions/upload-artifact@v4 | |
with: | |
name: rpcsx | |
path: artifacts | |
if-no-files-found: error |