name: CMake

on:
  pull_request:
    branches: [ master ]

env:
  BUILD_TYPE: RelWithDebInfo

jobs:
  Ubuntu:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    
    - name: Add OpenMW PPA Dependancies
      run: sudo add-apt-repository ppa:openmw/openmw; sudo apt-get update
    
    - name: Install Building Dependancies
      run: sudo CI/install_debian_deps.sh gcc openmw-deps openmw-deps-dynamic

    - name: Prime ccache
      uses: hendrikmuhs/ccache-action@v1
      with:
        key: ${{ matrix.os }}-${{ env.BUILD_TYPE }}
        max-size: 1000M

    - name: Install gtest
      run: |
        export CONFIGURATION="Release"
        export GOOGLETEST_DIR="."
        export GENERATOR="Unix Makefiles"
        export CC="gcc"
        export CXX="g++"
        sudo -E CI/build_googletest.sh

    - name: Configure
      run: cmake -S . -B . -DGTEST_ROOT="$(pwd)/googletest/build" -DGMOCK_ROOT="$(pwd)/googletest/build" -DBUILD_UNITTESTS=ON -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_INSTALL_PREFIX=./install -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_FLAGS='-Werror' -DCMAKE_CXX_FLAGS="-Werror -Wno-error=deprecated-declarations -Wno-error=nonnull -Wno-error=deprecated-copy"

    - name: Build
      run: cmake --build . --config ${{env.BUILD_TYPE}} --parallel 3
 
    - name: Test
      run: ./openmw_test_suite

#    - name: Install
#      shell: bash
#      run: cmake --install .
      
#    - name: Create Artifact
#      shell: bash
#      working-directory: install
#      run: |
#        ls -laR
#        7z a ../build_artifact.7z .
        
#    - name: Upload Artifact
#      uses: actions/upload-artifact@v1
#      with:
#        path: ./build_artifact.7z
#        name: build_artifact.7z

  MacOS:
    runs-on: macos-latest

    steps:
    - uses: actions/checkout@v2

    - name: Install Building Dependancies
      run: CI/before_install.osx.sh

    - name: Prime ccache
      uses: hendrikmuhs/ccache-action@v1
      with:
        key: ${{ matrix.os }}-${{ env.BUILD_TYPE }}
        max-size: 1000M

    - name: Configure
      run: |
        rm -fr build  # remove the build directory
        CI/before_script.osx.sh

    - name: Build
      run: |
        cd build 
        make -j $(sysctl -n hw.logicalcpu) package
