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@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, 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}}

  MacOS:
    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, 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}}

  Linux:
    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 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, Glslang

    - name: Configure CMake
      run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DENABLE_USER_BUILD=ON -DBUILD_HYDRA_CORE=ON

    - name: Build
      run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}

  Android-x64:
    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 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, 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}}