name: Build RPCSX on: push: paths-ignore: - "**/*.md" - '**/*.txt' pull_request: paths-ignore: - "**/*.md" - '**/*.txt' workflow_dispatch: jobs: build-rpcsx: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 with: submodules: recursive - name: Setup dependencies run: | sudo apt update sudo apt install -y cmake build-essential libunwind-dev \ libvulkan-dev vulkan-validationlayers \ libsox-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 libasound2-dev libglfw3-dev nasm 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_INSTALL_PREFIX=/usr cmake --build build -j$(($(nproc) + 2)) sudo cmake --build build --target install - name: Build RPCSX run: | cmake -B build -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=g++-14 -DCMAKE_CXX_FLAGS_INIT="-march=native" && \ cmake --build build -j$(($(nproc) + 2)) - name: Upload RPCSX uses: actions/upload-artifact@v4 with: name: rpcsx-bin path: build/bin/* if-no-files-found: error