From 8cf8ea48a1fb5e2308f185920532f3592aed25cb Mon Sep 17 00:00:00 2001 From: PancakeTAS Date: Sun, 13 Jul 2025 17:47:39 +0200 Subject: [PATCH] workflows for each distro fixes #67 --- .../workflows/{build.yml => build-arch.yml} | 3 +- .github/workflows/build-fedora.yml | 45 ++++++++++++++++ .github/workflows/build-ubuntu.yml | 54 +++++++++++++++++++ CMakeLists.txt | 6 +-- lsfg-vk-common/CMakeLists.txt | 2 +- lsfg-vk-v3.1/CMakeLists.txt | 2 +- lsfg-vk-v3.1p/CMakeLists.txt | 2 +- 7 files changed, 106 insertions(+), 8 deletions(-) rename .github/workflows/{build.yml => build-arch.yml} (96%) create mode 100644 .github/workflows/build-fedora.yml create mode 100644 .github/workflows/build-ubuntu.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build-arch.yml similarity index 96% rename from .github/workflows/build.yml rename to .github/workflows/build-arch.yml index 0d467ef..2a6acbd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build-arch.yml @@ -15,8 +15,7 @@ jobs: - name: Install build dependencies run: | pacman -Syu --noconfirm \ - base-devel \ - git \ + base-devel git \ clang llvm \ cmake ninja \ spirv-headers vulkan-headers vulkan-icd-loader diff --git a/.github/workflows/build-fedora.yml b/.github/workflows/build-fedora.yml new file mode 100644 index 0000000..0ff2800 --- /dev/null +++ b/.github/workflows/build-fedora.yml @@ -0,0 +1,45 @@ +name: Build lsfg-vk on Fedora +on: [push] + +jobs: + build-fedora: + runs-on: ubuntu-latest + container: + image: fedora:latest + steps: + - name: Prepare cache for dnf packages + uses: actions/cache@v4 + with: + path: /var/cache/libdnf5 + key: fedora-dnf-cache + - name: Install build dependencies + run: | + echo "keepcache=1" >> /etc/dnf/dnf.conf + dnf update -y + dnf install -y \ + git \ + clang llvm \ + cmake ninja-build \ + spirv-headers-devel vulkan-headers vulkan-loader-devel + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: true + - name: Configure with CMake and Ninja + run: | + cmake -B build -G Ninja \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=./build-release + - name: Build with Ninja + run: | + ninja -C build + - name: Install with CMake + run: | + cmake --install build + - name: Upload lsfg-vk artifact + uses: actions/upload-artifact@v4 + with: + name: lsfg-vk_fedora + path: | + build-release/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json + build-release/lib/liblsfg-vk.so diff --git a/.github/workflows/build-ubuntu.yml b/.github/workflows/build-ubuntu.yml new file mode 100644 index 0000000..7a5f8ec --- /dev/null +++ b/.github/workflows/build-ubuntu.yml @@ -0,0 +1,54 @@ +name: Build lsfg-vk on Ubuntu +on: [push] + +jobs: + build-ubuntu: + runs-on: ubuntu-latest + steps: + - name: Prepare cache for apt packages + uses: actions/cache@v4 + with: + path: /var/cache/apt/archives + key: ubuntu-apt-cache + - name: Install build dependencies + run: | + export DEBIAN_FRONTEND=noninteractive + sudo apt-get update + sudo apt-get install -y \ + build-essential \ + clang clang-tools llvm \ + git tar \ + cmake ninja-build \ + spirv-headers libvulkan-dev + - name: Checkout SPIR-V + uses: actions/checkout@v4 + with: + repository: 'KhronosGroup/SPIRV-Headers' + ref: 'vulkan-sdk-1.4.313.0' + path: 'spirv-headers' + - name: Build SPIR-V headers + run: | + cmake -S spirv-headers -B spirv-headers/build + sudo cmake --build spirv-headers/build --target install + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: true + - name: Configure with CMake and Ninja + run: | + cmake -B build -G Ninja \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=./build-release + - name: Build with Ninja + run: | + ninja -C build + - name: Install with CMake + run: | + cmake --install build + - name: Upload lsfg-vk artifact + uses: actions/upload-artifact@v4 + with: + name: lsfg-vk_ubuntu + path: | + build-release/share/vulkan/implicit_layer.d/VkLayer_LS_frame_generation.json + build-release/lib/liblsfg-vk.so diff --git a/CMakeLists.txt b/CMakeLists.txt index de1f21b..dab32fe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.29) +cmake_minimum_required(VERSION 3.28) set(CMAKE_C_COMPILER clang) set(CMAKE_CXX_COMPILER clang++) @@ -14,8 +14,8 @@ add_compile_options(-fPIC -Wno-deprecated-declarations -Wno-unused-template) -add_subdirectory(dxbc) -add_subdirectory(pe-parse/pe-parser-library) +add_subdirectory(dxbc EXCLUDE_FROM_ALL) +add_subdirectory(pe-parse/pe-parser-library EXCLUDE_FROM_ALL) add_subdirectory(lsfg-vk-common) add_subdirectory(lsfg-vk-v3.1) add_subdirectory(lsfg-vk-v3.1p) diff --git a/lsfg-vk-common/CMakeLists.txt b/lsfg-vk-common/CMakeLists.txt index 5c5ab0f..a6cf0c9 100644 --- a/lsfg-vk-common/CMakeLists.txt +++ b/lsfg-vk-common/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.29) +cmake_minimum_required(VERSION 3.28) # project project(lsfg-vk-common diff --git a/lsfg-vk-v3.1/CMakeLists.txt b/lsfg-vk-v3.1/CMakeLists.txt index d181cc4..cbc4abc 100644 --- a/lsfg-vk-v3.1/CMakeLists.txt +++ b/lsfg-vk-v3.1/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.29) +cmake_minimum_required(VERSION 3.28) # project project(lsfg-vk-v3.1 diff --git a/lsfg-vk-v3.1p/CMakeLists.txt b/lsfg-vk-v3.1p/CMakeLists.txt index d889858..94fa4c8 100644 --- a/lsfg-vk-v3.1p/CMakeLists.txt +++ b/lsfg-vk-v3.1p/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.29) +cmake_minimum_required(VERSION 3.28) # project project(lsfg-vk-v3.1p