name: Build on: [push, pull_request] env: CMAKE_BUILD_TYPE: ${{ github.event_name == 'pull_request' && 'Debug' || 'Release' }} jobs: windows: name: Windows runs-on: windows-latest steps: - name: Checkout uses: actions/checkout@v3 with: submodules: true - name: Configure run: cmake -B build shell: cmd - name: Build run: cmake --build build --config %CMAKE_BUILD_TYPE% shell: cmd - name: Upload uses: actions/upload-artifact@v3 with: name: lovr.exe path: | build/Release/lovr.exe build/Release/lovrc.bat build/Release/*.dll linux: name: Linux runs-on: ubuntu-22.04 steps: - name: Update Packages run: sudo apt update - name: Install Packages run: sudo apt install -y xorg-dev libxcb-glx0-dev libfuse2 - name: Checkout uses: actions/checkout@v3 with: submodules: true - name: Init run: cmake -B build -D LOVR_BUILD_BUNDLE=ON - name: Build run: cmake --build build - name: AppImage run: > curl -sOL https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage && chmod +x ./appimagetool-x86_64.AppImage && ./appimagetool-x86_64.AppImage build/bin && mv LÖVR-x86_64.AppImage lovr-x86_64.AppImage - name: Upload uses: actions/upload-artifact@v3 with: name: lovr.appimage path: lovr-x86_64.AppImage android: name: Android runs-on: ubuntu-22.04 steps: - name: Update Packages run: sudo apt update - name: Install Packages run: sudo apt install -y glslang-tools - name: Checkout uses: actions/checkout@v3 with: submodules: true - name: Init run: > mkdir build && cd build && keytool -genkey -dname 'cn=Unknown, ou=Unknown, o=Unknown, l=Unknown, st=Unknown, c=Unknown' -keystore key.keystore -keypass hunter2 -storepass hunter2 -alias key -keyalg RSA -keysize 2048 -validity 10000 && cmake .. -D CMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -D ANDROID_SDK=$ANDROID_HOME -D ANDROID_ABI=arm64-v8a -D ANDROID_NATIVE_API_LEVEL=29 -D ANDROID_BUILD_TOOLS_VERSION=30.0.3 -D ANDROID_KEYSTORE=key.keystore -D ANDROID_KEYSTORE_PASS=pass:hunter2 - name: Build run: cmake --build build - name: Upload uses: actions/upload-artifact@v3 with: name: lovr.apk path: build/lovr.apk macos: name: macOS runs-on: macos-latest steps: - name: Install Wulkan env: VKV: 1.3.231.1 run: | curl -sOL https://sdk.lunarg.com/sdk/download/$VKV/mac/vulkansdk-macos-$VKV.dmg?Human=true hdiutil attach vulkansdk-macos-$VKV.dmg cp -R /Volumes/vulkansdk-macos-$VKV . hdiutil detach /Volumes/vulkansdk-macos-$VKV export VULKAN_SDK=${{ runner.temp }}/vulkan && echo "VULKAN_SDK=$VULKAN_SDK/macOS" >> $GITHUB_ENV sudo vulkansdk-macos-$VKV/InstallVulkan.app/Contents/MacOS/InstallVulkan --root $VULKAN_SDK --accept-licenses --default-answer --confirm-command install - name: Checkout uses: actions/checkout@v3 with: submodules: true - name: Init run: cmake -B build -D LOVR_BUILD_BUNDLE=ON -D Vulkan_LIBRARY=$VULKAN_SDK/../MoltenVK/dylib/macOS/libMoltenVK.dylib - name: Build run: cmake --build build - name: Package run: ditto -c -k --keepParent build/lovr.app lovr.zip - name: Upload uses: actions/upload-artifact@v3 with: name: lovr.app path: lovr.zip