name: Macos Build

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

jobs:
  build-dmg:
    runs-on: macos-latest

    steps:
      - uses: actions/checkout@v2
        with:
          submodules: 'true'

      - name: Install dependencies from brew
        run: |
          brew install glfw3 glew libpng openal-soft luajit libvorbis skypjack/entt/entt

      - name: Install specific version of GLM
        run: |
          curl -O https://raw.githubusercontent.com/Homebrew/homebrew-core/5c7655a866646aa4b857c002b8ae5465b9d26f65/Formula/g/glm.rb
          brew install --formula glm.rb

      - name: Configure
        run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DVOXELENGINE_BUILD_APPDIR=1

      - name: Build
        run: cmake --build build -t install

      - name: Make fix_dylibs.sh executable
        run: chmod +x dev/fix_dylibs.sh

      - name: Fix dylibs
        run: ./dev/fix_dylibs.sh VoxelEngine Release build

      - name: Create DMG
        run: |
          mkdir VoxelEngineDmgContent
          cp -r build/res VoxelEngineDmgContent/
          cp -r build/VoxelEngine VoxelEngineDmgContent/
          cp -r build/libs VoxelEngineDmgContent/libs
          hdiutil create VoxelEngineMacApp.dmg -volname "VoxelEngine" -srcfolder VoxelEngineDmgContent -ov -format UDZO

      - name: Upload artifacts
        uses: actions/upload-artifact@v4
        with:
          name: VoxelEngineMacOs
          path: VoxelEngineMacApp.dmg
