language: c

addons:
  apt:
    packages:
      - lcov
      - imagemagick
  homebrew:
    packages:
      - imagemagick

script:
  - mkdir build
  - cd build
  - cmake ..
  - make
  - make test
  - cd tests
  - ./testMyRays

before_install:
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew unlink python@2 ; fi
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install imagemagick ; fi

jobs:
  include:
    - os: linux
      dist: bionic
      arch: amd64
      compiler: gcc

    - os: linux
      dist: bionic
      arch: amd64
      compiler: clang

    - os: linux
      dist: focal
      arch: amd64
      compiler: gcc

    - os: linux
      dist: focal
      arch: amd64
      compiler: clang


    - os: osx
      compiler: clang
      osx_image: xcode12.2

    - os: linux
      dist: focal
      arch: arm64
      compiler: gcc

    - os: osx
      compiler: clang
      osx_image: xcode10.3

    - os: osx
      compiler: clang
      osx_image: xcode11.6

    - os: osx
      compiler: clang
      osx_image: xcode12

    - stage: "Coverage"
      os: linux
      dist: bionic
      arch: amd64
      compiler: gcc
      script:
        - mkdir coverage
        - cd coverage
        - cmake .. -DCOVERALLS=ON -DCMAKE_BUILD_TYPE=Debug
        - cmake --build .
        - cmake --build . --target coveralls
      after_success:
        - bash <(curl -s https://codecov.io/bash)

  allow_failures:
    - os: linux
      arch: arm64

    - os: osx
