name: macOS-Debug

permissions:
  contents: read
  pull-requests: write

on:
  push:
    paths-ignore:
      - 'README.md'
      - 'doc/**'
  pull_request:
    paths-ignore:
      - 'README.md'
      - 'doc/**'

env:
  # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
  BUILD_TYPE: Debug

jobs:

  build-openexr2:

    runs-on: macos-latest

    steps:

    # - name: uninstall openexr 
    #   run:  brew uninstall --ignore-dependencies openexr 

    # - name: uninstall imath 
    #   run:  brew uninstall --ignore-dependencies imath

    - name: install dependencies - openexr v2.5
      run:  |
        cd ..
        git clone https://github.com/AcademySoftwareFoundation/openexr.git &&
        cd openexr &&
        git checkout RB-2.5 &&
        mkdir build &&
        cd build &&
        cmake .. &&
        make &&
        sudo make install

    - uses: actions/checkout@v4

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

    - name: Build
      # Build your program with the given configuration
      run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
  
  build-openexr3:
    runs-on: macos-latest

    steps:

    - name: install dependencies - imath
      run:  |
        cd ..
        git clone https://github.com/AcademySoftwareFoundation/Imath.git &&
        cd Imath &&
        mkdir build &&
        cd build &&
        cmake .. &&
        make &&
        sudo make install

    - name: install dependencies - openexr v3.1
      run:  |
        cd ..
        git clone https://github.com/AcademySoftwareFoundation/openexr.git &&
        cd openexr &&
        git checkout RB-3.1 &&
        mkdir build &&
        cd build &&
        cmake .. &&
        make &&
        sudo make install

    - uses: actions/checkout@v4

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

    - name: Build
      # Build your program with the given configuration
      run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}

  test-openexr2:

    runs-on: macos-latest

    steps:

    # - name: uninstall openexr 
    #   run:  brew uninstall --ignore-dependencies openexr 

    # - name: uninstall imath 
    #   run:  brew uninstall --ignore-dependencies imath

    - name: install dependencies - openexr v2.5
      run:  |
        cd ..
        git clone https://github.com/AcademySoftwareFoundation/openexr.git &&
        cd openexr &&
        git checkout RB-2.5 &&
        mkdir build &&
        cd build &&
        cmake .. &&
        make &&
        sudo make install

    - uses: actions/checkout@v4

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

    - name: Build
      # Build your program with the given configuration
      run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
    
    - name: Test
      working-directory: ${{github.workspace}}/build
      # Execute tests defined by the CMake configuration.  
      # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
      run: ctest -V --output-on-failure 
  
  test-openexr3:
    runs-on: macos-latest

    steps:

    - name: install dependencies - imath
      run:  |
        cd ..
        git clone https://github.com/AcademySoftwareFoundation/Imath.git &&
        cd Imath &&
        mkdir build &&
        cd build &&
        cmake .. &&
        make &&
        sudo make install

    - name: install dependencies - openexr v3.1
      run:  |
        cd ..
        git clone https://github.com/AcademySoftwareFoundation/openexr.git &&
        cd openexr &&
        git checkout RB-3.1 &&
        mkdir build &&
        cd build &&
        cmake .. &&
        make &&
        sudo make install

    - uses: actions/checkout@v4

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

    - name: Build
      # Build your program with the given configuration
      run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
    
    - name: Test
      working-directory: ${{github.workspace}}/build
      # Execute tests defined by the CMake configuration.  
      # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
      run: ctest -V --output-on-failure 

