diff --git a/.github/workflows/Android_Build.yml b/.github/workflows/Android_Build.yml deleted file mode 100644 index 2a06a12cb..000000000 --- a/.github/workflows/Android_Build.yml +++ /dev/null @@ -1,119 +0,0 @@ -name: Android Build - -on: - push: - branches: - - master - pull_request: - -jobs: - x64: - runs-on: ubuntu-latest - - strategy: - matrix: - build_type: - - release - - steps: - - name: Set BUILD_TYPE variable - run: echo "BUILD_TYPE=${{ matrix.build_type }}" >> $GITHUB_ENV - - - uses: actions/checkout@v4 - - name: Fetch submodules - run: git submodule update --init --recursive - - - name: Setup Vulkan SDK - uses: humbletim/setup-vulkan-sdk@v1.2.0 - with: - vulkan-query-version: latest - vulkan-use-cache: true - vulkan-components: Vulkan-Headers, Vulkan-Loader, SPIRV-Tools, Glslang - - - name: Setup Java - uses: actions/setup-java@v4 - with: - distribution: 'zulu' - java-version: '17' - - - name: Configure CMake - run: cmake -B ${{github.workspace}}/build -DBUILD_HYDRA_CORE=1 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake -DANDROID_ABI=x86_64 -DENABLE_VULKAN=0 -DENABLE_USER_BUILD=ON - - - name: Build - run: | - # Apply patch for GLES compatibility - git apply ./.github/gles.patch - # Build the project with CMake - cmake --build ${{github.workspace}}/build --config ${{ env.BUILD_TYPE }} - - # Strip the generated library and move it to the appropriate location - ${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip --strip-unneeded ./build/libAlber.so - mv ./build/libAlber.so ./src/pandroid/app/src/main/jniLibs/x86_64/ - - # Build the Android app with Gradle - cd src/pandroid - ./gradlew assemble${{ env.BUILD_TYPE }} - cd ../.. - - - name: Upload artifacts - uses: actions/upload-artifact@v4 - with: - name: Android APKs (x86-64) - path: | - ./src/pandroid/app/build/outputs/apk/${{ env.BUILD_TYPE }}/app-${{ env.BUILD_TYPE }}.apk - - arm64: - runs-on: ubuntu-latest - - strategy: - matrix: - build_type: - - release - - steps: - - name: Set BUILD_TYPE variable - run: echo "BUILD_TYPE=${{ matrix.build_type }}" >> $GITHUB_ENV - - - uses: actions/checkout@v4 - - name: Fetch submodules - run: git submodule update --init --recursive - - - name: Setup Vulkan SDK - uses: humbletim/setup-vulkan-sdk@v1.2.0 - with: - vulkan-query-version: latest - vulkan-use-cache: true - vulkan-components: Vulkan-Headers, Vulkan-Loader, SPIRV-Tools, Glslang - - - name: Setup Java - uses: actions/setup-java@v4 - with: - distribution: 'zulu' - java-version: '17' - - - name: Configure CMake - run: cmake -B ${{github.workspace}}/build -DBUILD_HYDRA_CORE=1 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DENABLE_VULKAN=0 -DENABLE_USER_BUILD=ON -DCMAKE_CXX_FLAGS="-march=armv8-a+crypto" - - - name: Build - run: | - # Apply patch for GLES compatibility - git apply ./.github/gles.patch - # Build the project with CMake - cmake --build ${{github.workspace}}/build --config ${{ env.BUILD_TYPE }} - - # Strip the generated library and move it to the appropriate location - ${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip --strip-unneeded ./build/libAlber.so - mv ./build/libAlber.so ./src/pandroid/app/src/main/jniLibs/arm64-v8a/ - - # Build the Android app with Gradle - cd src/pandroid - ./gradlew assemble${{ env.BUILD_TYPE }} - ls -R app/build/outputs - cd ../.. - - - name: Upload artifacts - uses: actions/upload-artifact@v4 - with: - name: Android APKs (arm64) - path: | - ./src/pandroid/app/build/outputs/apk/${{ env.BUILD_TYPE }}/app-${{ env.BUILD_TYPE }}.apk diff --git a/.github/workflows/HTTP_Build.yml b/.github/workflows/HTTP_Build.yml deleted file mode 100644 index 7bfe9c7f8..000000000 --- a/.github/workflows/HTTP_Build.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: HTTP Server Build - -on: - push: - branches: - - master - pull_request: - -env: - # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) - BUILD_TYPE: Release - -jobs: - build: - # The CMake configure and build commands are platform agnostic and should work equally - # well on Windows or Mac. You can convert this to a matrix build if you need - # cross-platform coverage. - # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - name: Fetch submodules - run: git submodule update --init --recursive - - - name: Install newer Clang - run: | - wget https://apt.llvm.org/llvm.sh - chmod +x ./llvm.sh - sudo ./llvm.sh 17 - - - name: Setup Vulkan SDK - uses: humbletim/setup-vulkan-sdk@v1.2.0 - with: - vulkan-query-version: latest - vulkan-use-cache: true - vulkan-components: Vulkan-Headers, Vulkan-Loader, SPIRV-Tools, Glslang - - - name: Configure CMake - # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. - # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type - run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_C_COMPILER=clang-17 -DCMAKE_CXX_COMPILER=clang++-17 -DENABLE_USER_BUILD=ON -DENABLE_HTTP_SERVER=ON - - - name: Build - # Build your program with the given configuration - run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} diff --git a/.github/workflows/Linux_AppImage_Build.yml b/.github/workflows/Linux_AppImage_Build.yml deleted file mode 100644 index 507187a3d..000000000 --- a/.github/workflows/Linux_AppImage_Build.yml +++ /dev/null @@ -1,58 +0,0 @@ -name: Linux AppImage Build - -on: - push: - branches: - - master - pull_request: - -env: - # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) - BUILD_TYPE: Release - -jobs: - build: - # The CMake configure and build commands are platform agnostic and should work equally - # well on Windows or Mac. You can convert this to a matrix build if you need - # cross-platform coverage. - # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix - runs-on: ubuntu-20.04 - - steps: - - uses: actions/checkout@v2 - - name: Fetch submodules - run: git submodule update --init --recursive - - - name: Install misc packages - run: sudo apt-get update && sudo apt install libx11-dev libgl1-mesa-glx mesa-common-dev libfuse2 - - - name: Install newer Clang - run: | - wget https://apt.llvm.org/llvm.sh - chmod +x ./llvm.sh - sudo ./llvm.sh 17 - - - name: Setup Vulkan SDK - run: | - wget -qO - http://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo apt-key add - - sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-focal.list http://packages.lunarg.com/vulkan/lunarg-vulkan-focal.list - sudo apt update - sudo apt install vulkan-sdk - - - name: Configure CMake - # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. - # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type - run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_C_COMPILER=clang-17 -DCMAKE_CXX_COMPILER=clang++-17 -DENABLE_USER_BUILD=ON - - - name: Build - # Build your program with the given configuration - run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} - - - name: Run AppImage packaging script - run: ./.github/linux-appimage.sh - - - name: Upload executable - uses: actions/upload-artifact@v2 - with: - name: Linux executable - path: './Alber-x86_64.AppImage' diff --git a/.github/workflows/Linux_Build.yml b/.github/workflows/Linux_Build.yml deleted file mode 100644 index 78e5cc5a5..000000000 --- a/.github/workflows/Linux_Build.yml +++ /dev/null @@ -1,55 +0,0 @@ -name: Linux Build - -on: - push: - branches: - - master - pull_request: - -env: - # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) - BUILD_TYPE: Release - -jobs: - build: - # The CMake configure and build commands are platform agnostic and should work equally - # well on Windows or Mac. You can convert this to a matrix build if you need - # cross-platform coverage. - # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - name: Fetch submodules - run: git submodule update --init --recursive - - - name: Install misc packages - run: sudo apt-get update && sudo apt install libx11-dev libgl1-mesa-glx mesa-common-dev - - - name: Install newer Clang - run: | - wget https://apt.llvm.org/llvm.sh - chmod +x ./llvm.sh - sudo ./llvm.sh 17 - - - name: Setup Vulkan SDK - uses: humbletim/setup-vulkan-sdk@v1.2.0 - with: - vulkan-query-version: latest - vulkan-use-cache: true - vulkan-components: Vulkan-Headers, Vulkan-Loader, SPIRV-Tools, Glslang - - - name: Configure CMake - # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. - # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type - run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_C_COMPILER=clang-17 -DCMAKE_CXX_COMPILER=clang++-17 -DENABLE_USER_BUILD=ON - - - name: Build - # Build your program with the given configuration - run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} - - - name: Upload executable - uses: actions/upload-artifact@v2 - with: - name: Linux executable - path: './build/Alber' diff --git a/.github/workflows/MacOS_Build.yml b/.github/workflows/MacOS_Build.yml deleted file mode 100644 index b659e3fa9..000000000 --- a/.github/workflows/MacOS_Build.yml +++ /dev/null @@ -1,58 +0,0 @@ -name: MacOS Build - -on: - push: - branches: - - master - pull_request: - -env: - # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) - BUILD_TYPE: Release - -jobs: - build: - # The CMake configure and build commands are platform agnostic and should work equally - # well on Windows or Mac. You can convert this to a matrix build if you need - # cross-platform coverage. - # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix - runs-on: macos-latest - - steps: - - uses: actions/checkout@v2 - - name: Fetch submodules - run: git submodule update --init --recursive - - - name: Setup Vulkan SDK - uses: humbletim/setup-vulkan-sdk@v1.2.0 - with: - vulkan-query-version: latest - vulkan-use-cache: true - vulkan-components: Vulkan-Headers, Vulkan-Loader, SPIRV-Tools, Glslang - - - name: Configure CMake - # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. - # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type - run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DENABLE_USER_BUILD=ON - - - name: Build - # Build your program with the given configuration - run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} - - - name: Install bundle dependencies - run: brew install dylibbundler imagemagick - - - name: Run bundle script - run: ./.github/mac-bundle.sh - - - name: Sign the App - run: codesign --force -s - -vvvv Alber.app - - - name: Zip it up - run: zip -r Alber Alber.app - - - name: Upload MacOS App - uses: actions/upload-artifact@v2 - with: - name: MacOS Alber App Bundle - path: 'Alber.zip' diff --git a/.github/workflows/Windows_Build.yml b/.github/workflows/Windows_Build.yml deleted file mode 100644 index ae9fd5879..000000000 --- a/.github/workflows/Windows_Build.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: Windows Build - -on: - push: - branches: - - master - pull_request: - -env: - # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) - BUILD_TYPE: Release - -jobs: - build: - # The CMake configure and build commands are platform agnostic and should work equally - # well on Windows or Mac. You can convert this to a matrix build if you need - # cross-platform coverage. - # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix - runs-on: windows-latest - - steps: - - uses: actions/checkout@v2 - - name: Fetch submodules - run: git submodule update --init --recursive - - - name: Setup Vulkan SDK - uses: humbletim/setup-vulkan-sdk@v1.2.0 - with: - vulkan-query-version: latest - vulkan-use-cache: true - vulkan-components: Vulkan-Headers, Vulkan-Loader, SPIRV-Tools, Glslang - - - name: Configure CMake - # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. - # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type - run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DENABLE_USER_BUILD=ON - - - name: Build - # Build your program with the given configuration - run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} - - - name: Upload executable - uses: actions/upload-artifact@v2 - with: - name: Windows executable - path: './build/Release/Alber.exe' diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..3aca783d7 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,340 @@ +name: Panda 3ds CI + +on: + push: + branches: + - master + pull_request: + +jobs: + android-x64: + runs-on: ubuntu-latest + + strategy: + matrix: + build_type: + - release + + steps: + - name: Set BUILD_TYPE variable + run: echo "BUILD_TYPE=${{ matrix.build_type }}" >> $GITHUB_ENV + + - uses: actions/checkout@v4 + - name: Fetch submodules + run: git submodule update --init --recursive + + - name: Setup Vulkan SDK + uses: humbletim/setup-vulkan-sdk@v1.2.0 + with: + vulkan-query-version: latest + vulkan-use-cache: true + vulkan-components: Vulkan-Headers, Vulkan-Loader, SPIRV-Tools, Glslang + + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: 'zulu' + java-version: '17' + + - name: Configure CMake + run: cmake -B ${{github.workspace}}/build -DBUILD_HYDRA_CORE=1 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake -DANDROID_ABI=x86_64 -DENABLE_VULKAN=0 -DENABLE_USER_BUILD=ON + + - name: Build + run: | + # Apply patch for GLES compatibility + git apply ./.github/gles.patch + # Build the project with CMake + cmake --build ${{github.workspace}}/build --config ${{ env.BUILD_TYPE }} + + # Strip the generated library and move it to the appropriate location + ${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip --strip-unneeded ./build/libAlber.so + mv ./build/libAlber.so ./src/pandroid/app/src/main/jniLibs/x86_64/ + + # Build the Android app with Gradle + cd src/pandroid + ./gradlew assemble${{ env.BUILD_TYPE }} + cd ../.. + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: Android APKs (x86-64) + path: | + ./src/pandroid/app/build/outputs/apk/${{ env.BUILD_TYPE }}/app-${{ env.BUILD_TYPE }}.apk + + android-arm64: + runs-on: ubuntu-latest + + strategy: + matrix: + build_type: + - release + + steps: + - name: Set BUILD_TYPE variable + run: echo "BUILD_TYPE=${{ matrix.build_type }}" >> $GITHUB_ENV + + - uses: actions/checkout@v4 + - name: Fetch submodules + run: git submodule update --init --recursive + + - name: Setup Vulkan SDK + uses: humbletim/setup-vulkan-sdk@v1.2.0 + with: + vulkan-query-version: latest + vulkan-use-cache: true + vulkan-components: Vulkan-Headers, Vulkan-Loader, SPIRV-Tools, Glslang + + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: 'zulu' + java-version: '17' + + - name: Configure CMake + run: cmake -B ${{github.workspace}}/build -DBUILD_HYDRA_CORE=1 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DENABLE_VULKAN=0 -DENABLE_USER_BUILD=ON -DCMAKE_CXX_FLAGS="-march=armv8-a+crypto" + + - name: Build + run: | + # Apply patch for GLES compatibility + git apply ./.github/gles.patch + # Build the project with CMake + cmake --build ${{github.workspace}}/build --config ${{ env.BUILD_TYPE }} + + # Strip the generated library and move it to the appropriate location + ${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip --strip-unneeded ./build/libAlber.so + mv ./build/libAlber.so ./src/pandroid/app/src/main/jniLibs/arm64-v8a/ + + # Build the Android app with Gradle + cd src/pandroid + ./gradlew assemble${{ env.BUILD_TYPE }} + ls -R app/build/outputs + cd ../.. + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: Android APKs (arm64) + path: | + ./src/pandroid/app/build/outputs/apk/${{ env.BUILD_TYPE }}/app-${{ env.BUILD_TYPE }}.apk + + windows-Build: + runs-on: windows-latest + + strategy: + matrix: + build_type: + - release + + steps: + - name: Set BUILD_TYPE variable + run: echo "BUILD_TYPE=${{ matrix.build_type }}" >> $GITHUB_ENV + + - uses: actions/checkout@v4 + - name: Fetch submodules + run: git submodule update --init --recursive + + - name: Setup Vulkan SDK + uses: humbletim/setup-vulkan-sdk@v1.2.0 + with: + vulkan-query-version: latest + vulkan-use-cache: true + vulkan-components: Vulkan-Headers, Vulkan-Loader, SPIRV-Tools, Glslang + + - name: Configure CMake + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DENABLE_USER_BUILD=ON + + - name: Build + # Build your program with the given configuration + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} + + - name: Upload executable + uses: actions/upload-artifact@v2 + with: + name: Windows executable + path: './build/Release/Alber.exe' + + HTTP-Server-Build: + runs-on: ubuntu-latest + + strategy: + matrix: + build_type: + - release + + steps: + - name: Set BUILD_TYPE variable + run: echo "BUILD_TYPE=${{ matrix.build_type }}" >> $GITHUB_ENV + + - uses: actions/checkout@v2 + - name: Fetch submodules + run: git submodule update --init --recursive + + - name: Install newer Clang + run: | + wget https://apt.llvm.org/llvm.sh + chmod +x ./llvm.sh + sudo ./llvm.sh 17 + + - name: Setup Vulkan SDK + uses: humbletim/setup-vulkan-sdk@v1.2.0 + with: + vulkan-query-version: latest + vulkan-use-cache: true + vulkan-components: Vulkan-Headers, Vulkan-Loader, SPIRV-Tools, Glslang + + - name: Configure CMake + # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. + # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_C_COMPILER=clang-17 -DCMAKE_CXX_COMPILER=clang++-17 -DENABLE_USER_BUILD=ON -DENABLE_HTTP_SERVER=ON + + - name: Build + # Build your program with the given configuration + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} + + MacOs-Build: + runs-on: macos-latest + + strategy: + matrix: + build_type: + - release + + steps: + - name: Set BUILD_TYPE variable + run: echo "BUILD_TYPE=${{ matrix.build_type }}" >> $GITHUB_ENV + + - uses: actions/checkout@v2 + - name: Fetch submodules + run: git submodule update --init --recursive + + - name: Setup Vulkan SDK + uses: humbletim/setup-vulkan-sdk@v1.2.0 + with: + vulkan-query-version: latest + vulkan-use-cache: true + vulkan-components: Vulkan-Headers, Vulkan-Loader, SPIRV-Tools, Glslang + + - name: Configure CMake + # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. + # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DENABLE_USER_BUILD=ON + + - name: Build + # Build your program with the given configuration + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} + + - name: Install bundle dependencies + run: brew install dylibbundler imagemagick + + - name: Run bundle script + run: ./.github/mac-bundle.sh + + - name: Sign the App + run: codesign --force -s - -vvvv Alber.app + + - name: Zip it up + run: zip -r Alber Alber.app + + - name: Upload MacOS App + uses: actions/upload-artifact@v2 + with: + name: MacOS Alber App Bundle + path: 'Alber.zip' + + Linux-AppImage-Build: + runs-on: ubuntu-20.04 + + strategy: + matrix: + build_type: + - release + + steps: + - name: Set BUILD_TYPE variable + run: echo "BUILD_TYPE=${{ matrix.build_type }}" >> $GITHUB_ENV + + - uses: actions/checkout@v2 + - name: Fetch submodules + run: git submodule update --init --recursive + + - name: Install misc packages + run: sudo apt-get update && sudo apt install libx11-dev libgl1-mesa-glx mesa-common-dev libfuse2 + + - name: Install newer Clang + run: | + wget https://apt.llvm.org/llvm.sh + chmod +x ./llvm.sh + sudo ./llvm.sh 17 + + - name: Setup Vulkan SDK + run: | + wget -qO - http://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo apt-key add - + sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-focal.list http://packages.lunarg.com/vulkan/lunarg-vulkan-focal.list + sudo apt update + sudo apt install vulkan-sdk + + - name: Configure CMake + # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. + # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_C_COMPILER=clang-17 -DCMAKE_CXX_COMPILER=clang++-17 -DENABLE_USER_BUILD=ON + + - name: Build + # Build your program with the given configuration + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} + + - name: Run AppImage packaging script + run: ./.github/linux-appimage.sh + + - name: Upload executable + uses: actions/upload-artifact@v2 + with: + name: Linux executable + path: './Alber-x86_64.AppImage' + + Linux-Build: + runs-on: ubuntu-latest + + strategy: + matrix: + build_type: + - release + + steps: + - name: Set BUILD_TYPE variable + run: echo "BUILD_TYPE=${{ matrix.build_type }}" >> $GITHUB_ENV + + - uses: actions/checkout@v2 + - name: Fetch submodules + run: git submodule update --init --recursive + + - name: Install misc packages + run: sudo apt-get update && sudo apt install libx11-dev libgl1-mesa-glx mesa-common-dev + + - name: Install newer Clang + run: | + wget https://apt.llvm.org/llvm.sh + chmod +x ./llvm.sh + sudo ./llvm.sh 17 + + - name: Setup Vulkan SDK + uses: humbletim/setup-vulkan-sdk@v1.2.0 + with: + vulkan-query-version: latest + vulkan-use-cache: true + vulkan-components: Vulkan-Headers, Vulkan-Loader, SPIRV-Tools, Glslang + + - name: Configure CMake + # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. + # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_C_COMPILER=clang-17 -DCMAKE_CXX_COMPILER=clang++-17 -DENABLE_USER_BUILD=ON + + - name: Build + # Build your program with the given configuration + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} + + - name: Upload executable + uses: actions/upload-artifact@v2 + with: + name: Linux executable + path: './build/Alber'