name: Hydra Core Build on: push: branches: - master pull_request: env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) BUILD_TYPE: Release jobs: Windows: runs-on: windows-latest steps: - 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 -DBUILD_HYDRA_CORE=ON - name: Build run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} - name: Upload Hydra core uses: actions/upload-artifact@v4 with: name: Windows Hydra core path: '${{github.workspace}}/build/${{ env.BUILD_TYPE }}/Alber.dll' - name: Configure CMake (Again) run: | rm -r -fo ${{github.workspace}}/build cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DENABLE_USER_BUILD=ON -DBUILD_LIBRETRO_CORE=ON - name: Build (Again) run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} - name: Upload Libretro core uses: actions/upload-artifact@v4 with: name: Windows Libretro core path: | ${{github.workspace}}/build/${{ env.BUILD_TYPE }}/panda3ds_libretro.dll ${{github.workspace}}/docs/libretro/panda3ds_libretro.info MacOS: runs-on: macos-13 steps: - 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 -DBUILD_HYDRA_CORE=ON - name: Build run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} - name: Upload core uses: actions/upload-artifact@v4 with: name: MacOS Hydra core path: '${{github.workspace}}/build/libAlber.dylib' - name: Configure CMake (Again) run: | rm -rf ${{github.workspace}}/build cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DENABLE_USER_BUILD=ON -DBUILD_LIBRETRO_CORE=ON - name: Build (Again) run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} && ls -R ${{github.workspace}}/build - name: Upload Libretro core uses: actions/upload-artifact@v4 with: name: MacOS Libretro core path: | ${{github.workspace}}/build/panda3ds_libretro.dylib ${{github.workspace}}/docs/libretro/panda3ds_libretro.info Linux: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - name: Fetch submodules run: git submodule update --init --recursive - name: Install misc packages run: | sudo apt-get update && sudo apt install libx11-dev libgl1 libglx-mesa0 mesa-common-dev libfuse2 libwayland-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 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 -DBUILD_HYDRA_CORE=ON - name: Build run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} - name: Upload core uses: actions/upload-artifact@v4 with: name: Linux Hydra core path: '${{github.workspace}}/build/libAlber.so' - name: Configure CMake (Again) run: | rm -rf ${{github.workspace}}/build 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 -DBUILD_LIBRETRO_CORE=ON - name: Build (Again) run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} - name: Upload Libretro core uses: actions/upload-artifact@v4 with: name: Linux Libretro core path: | ${{github.workspace}}/build/panda3ds_libretro.so ${{github.workspace}}/docs/libretro/panda3ds_libretro.info Android-x64: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - name: Fetch submodules run: git submodule update --init --recursive - name: Install misc packages run: | sudo apt-get update && sudo apt install libx11-dev libgl1 libglx-mesa0 mesa-common-dev libfuse2 libwayland-dev - 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}} -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake -DANDROID_ABI=x86_64 -DBUILD_HYDRA_CORE=1 -DENABLE_VULKAN=0 - name: Build run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} - name: Upload core uses: actions/upload-artifact@v4 with: name: Android Hydra core path: '${{github.workspace}}/build/libAlber.so'