language: c
dist: xenial
group: travis_latest

git:
  depth: 3
  quiet: true

addons:
  apt:
    packages:
    - gfortran

matrix:
  include:
  - os: linux
    name: "CMake Release Test on Linux"
    env: CMAKE_BUILD_TYPE=Release
  - os: linux
    name: "Makefile Test on Linux"
    script:
    - rm -f make.inc
    - cp make.inc.example make.inc
    - make FFLAGS="-fimplicit-none -frecursive -fcheck=all" -s -j2 all
    - make -j2 lapack_install
  - os: linux
    name: "CMake Coverage Test on Linux"
    env: CMAKE_BUILD_TYPE=Coverage
  - os: osx
    name: "CMake Release Test on macOS Big Sur"
    osx_image: xcode12.3
    env: CMAKE_BUILD_TYPE=Release
  - os: osx
    osx_image: xcode12.3
    name: "Makefile Test on on macOS Big Sur"
    script:
    - rm -f make.inc
    - cp make.inc.example make.inc
    - make FFLAGS="-fimplicit-none -frecursive -fcheck=all" -s -j2 all
    - make -j2 lapack_install

before_script:
  - export PR=https://api.github.com/repos/$TRAVIS_REPO_SLUG/pulls/$TRAVIS_PULL_REQUEST
  - export BRANCH=$(if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then echo $TRAVIS_BRANCH; else echo `curl -s $PR | jq -r .head.ref`; fi)
  - echo "TRAVIS_BRANCH=$TRAVIS_BRANCH, PR=$PR, BRANCH=$BRANCH"

script:
  - export SRC_DIR=$(pwd)
  - export BLD_DIR=${SRC_DIR}/lapack-travis-bld
  - export INST_DIR=${SRC_DIR}/../lapack-travis-install
  - mkdir -p ${BLD_DIR}
  - cd ${BLD_DIR}
# See issue #17 on github dashboard.  Once resolved, use -DCBLAS=ON
#  - cmake -DCMAKE_INSTALL_PREFIX=${INST_DIR} -DLAPACKE=ON ${SRC_DIR}
  - cmake -DBUILDNAME:STRING="travis-${TRAVIS_OS_NAME}-${BRANCH}"
    -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
    -DCMAKE_INSTALL_PREFIX=${INST_DIR}
    -DCBLAS:BOOL=ON
    -DLAPACKE:BOOL=ON
    -DBUILD_TESTING=ON
    -DLAPACKE_WITH_TMG:BOOL=ON
    -DBUILD_SHARED_LIBS:BOOL=ON
    -DCMAKE_Fortran_FLAGS:STRING="-fimplicit-none -frecursive -fcheck=all"
    -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
    ${SRC_DIR}
  - ctest -D ExperimentalStart
  - ctest -D ExperimentalConfigure
  - ctest -D ExperimentalBuild -j2
  - ctest -D ExperimentalTest --schedule-random -j2 --output-on-failure --timeout 100
  - ctest -D ExperimentalSubmit
  - make install -j2
  - if [[ "$CMAKE_BUILD_TYPE" == "Coverage" ]];
    then
    echo "Coverage";
    make coverage;
    bash <(curl -s https://codecov.io/bash) -X gcov;
    fi
