diff --git a/.github/workflows/ci-linux.yml b/.github/workflows/ci-linux.yml index 8530e35c..2db613a4 100644 --- a/.github/workflows/ci-linux.yml +++ b/.github/workflows/ci-linux.yml @@ -8,29 +8,22 @@ jobs: steps: - name: Checkout source uses: actions/checkout@v3 - - name: Install system dependencies + - name: Install System Packages run: | - wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo tee /etc/apt/trusted.gpg.d/lunarg.asc - sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-1.3.239-jammy.list https://packages.lunarg.com/vulkan/1.3.239/lunarg-vulkan-1.3.239-jammy.list - sudo apt update - sudo apt install libxkbcommon-dev vulkan-sdk - - echo "VULKAN_SDK=/usr" >> $GITHUB_ENV - - name: Install Qt - uses: jurplel/install-qt-action@v3 + sudo apt-get update + sudo apt-get install -y flatpak flatpak-builder + - name: Add Flathub + run: flatpak remote-add --user flathub https://flathub.org/repo/flathub.flatpakrepo + - name: Install Flatpak Runtimes + run: flatpak install --noninteractive flathub org.kde.Platform//6.4 org.kde.Sdk//6.4 org.freedesktop.Sdk.Extension.rust-stable//22.08 + - name: Build Flatpak + run: flatpak-builder --default-branch dev build flatpak.yml + - name: Export Flatpak + run: flatpak build-export flatpak build + - name: Bundle Flatpak + run: flatpak build-bundle flatpak obliteration.flatpak io.github.obhq.Obliteration --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo + - name: Upload Flatpak + uses: actions/upload-artifact@v3 with: - cache: true - cache-key-prefix: ${{ runner.os }}-install-qt-action - version: 6.2.* - - name: Cache CMake Build Files - uses: actions/cache@v3.2.4 - id: cache-cmake - with: - path: | - /home/runner/work/obliteration/obliteration/build - /home/runner/work/obliteration/obliteration/src/target - key: ${{ runner.os }}-cmake-${{ hashFiles('**/CMakeLists.*', '**/Cargo.lock', '**/Cargo.toml', '.github/workflows/*.yml') }} - - name: Run CMake - run: cmake --preset linux-release . - - name: Build - run: cmake --build --preset linux-release + name: obliteration-linux + path: obliteration.flatpak diff --git a/.gitignore b/.gitignore index fc461171..fb7cc468 100644 --- a/.gitignore +++ b/.gitignore @@ -1,26 +1,6 @@ +.vs/ +/.flatpak-builder/ /.kernel-debug /build/ /src/target/ Cargo.lock -.vs/ -CMakeFiles/ -ALL_BUILD.vcxproj -ALL_BUILD.vcxproj.filters -cmake_install.cmake -CMakeCache.txt -INSTALL.vcxproj -INSTALL.vcxproj.filters -obliteration.sln -src/cmake_install.cmake -src/CMakeFiles/ -src/core-prefix/src/core-stamp/core-source_dirinfo.txt -src/core-prefix/tmp/core-cfgcmd.txt -src/core-prefix/tmp/core-mkdirs.cmake -src/core.vcxproj -src/core.vcxproj.filters -src/INSTALL.vcxproj -src/INSTALL.vcxproj.filters -src/obliteration.vcxproj -src/obliteration.vcxproj.filters -ZERO_CHECK.vcxproj -ZERO_CHECK.vcxproj.filters diff --git a/README.md b/README.md index b4200779..60fb9da5 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Obliteration is an experimental PS4 emulator using [Kyty](https://github.com/Ino ## Get a daily build -You can download the Windows binaries from the latest commits [here](https://github.com/obhq/obliteration/actions/workflows/main.yml). You **MUST** sign-in to GitHub otherwise you will not be able to download the file. +You can download the binaries from the latest commits [here](https://github.com/obhq/obliteration/actions/workflows/main.yml). You **MUST** sign-in to GitHub otherwise you will not be able to download the file. ## Screenshots @@ -26,7 +26,6 @@ We have a Matrix Room Space `#obliteration:matrix.org` on [Matrix.to](https://ma - [ ] Built-in PUP file supports for decrypted PUP from [pup_decrypt](https://github.com/idc/ps4-pup_decrypt). - [x] Built-in PKG file supports for Fake PKG. - [x] Game library. -- [x] Direct mounting PFS image. - [ ] Emulate system calls instead of user space libraries. ## System requirements diff --git a/flatpak.yml b/flatpak.yml new file mode 100644 index 00000000..266ed335 --- /dev/null +++ b/flatpak.yml @@ -0,0 +1,32 @@ +app-id: io.github.obhq.Obliteration +default-branch: stable +runtime: org.kde.Platform +runtime-version: '6.4' +platform-extensions: +- org.freedesktop.Platform.GL.default +sdk: org.kde.Sdk +sdk-extensions: +- org.freedesktop.Sdk.Extension.rust-stable +command: obliteration +build-options: + append-path: /usr/lib/sdk/rust-stable/bin + build-args: + - --share=network +finish-args: + - --filesystem=host + - --share=network + - --share=ipc + - --socket=fallback-x11 + - --socket=wayland + - --device=dri + - --socket=pulseaudio +modules: +- name: obliteration + buildsystem: simple # cmake does not work somehow + build-commands: + - cmake --preset linux-release . + - cmake --build --preset linux-release + - cmake --install build --prefix "$FLATPAK_DEST" + sources: + - type: dir + path: .