
# Build on ubuntu1604 with CUDA 9.2 and test on ubuntu1604 and ubuntu1804
# Uses gcc 5, and build for pascal as CUDA 9.2 doesn't support turing
build:ubuntu1604_gcc5:
  tags:
    - build
    - vtkm
    - docker
    - linux
    - large-memory
  extends:
    - .ubuntu1604_cuda
    - .cmake_build_linux
    - .only-default
  variables:
    CC: "gcc-5"
    CXX: "g++-5"
    CMAKE_BUILD_TYPE: RelWithDebInfo
    VTKM_SETTINGS: "cuda+pascal"

# Temporarily disabled as we don't have a pascal hw gitlab-runner
# test:ubuntu1604_gcc5:
#   tags:
#     - test
#     - cuda-rt
#     - pascal
#     - vtkm
#     - docker
#     - linux
#   extends:
#     - .ubuntu1604_cuda
#     - .cmake_test_linux
#     - .only-default
#   dependencies:
#     - build:ubuntu1604_gcc5
#   needs:
#     - build:ubuntu1604_gcc5
# test:ubuntu1804_test_ubuntu1604_gcc5:
#   tags:
#     - test
#     - cuda-rt
#     - pascal
#     - vtkm
#     - docker
#     - linux
#   extends:
#     - .ubuntu1804_cuda
#     - .cmake_test_linux
#     - .only-default
#   dependencies:
#     - build:ubuntu1604_gcc5
#   needs:
#     - build:ubuntu1604_gcc5

# Build on ubuntu1604 with mpi + tbb and test on ubuntu1604
# Uses gcc 4.8
# Uses OpenMPI
build:ubuntu1604_gcc48:
  tags:
    - build
    - vtkm
    - docker
    - linux
  extends:
    - .ubuntu1604
    - .cmake_build_linux
    - .only-default
  variables:
    CC: "gcc-4.8"
    CXX: "g++-4.8"
    CMAKE_BUILD_TYPE: Release
    #custom openmpi install location
    CMAKE_PREFIX_PATH: "/opt/openmpi/"
    VTKM_SETTINGS: "tbb+mpi+shared"

test:ubuntu1604_gcc48:
  tags:
    - test
    - vtkm
    - docker
    - linux
  extends:
    - .ubuntu1604
    - .cmake_test_linux
    - .only-default
  variables:
    #env flags to allow openmpi to run as root user
    OMPI_ALLOW_RUN_AS_ROOT: 1
    OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1
    #mpi location so that `built_against_test_install` tests
    #pass
    CMAKE_PREFIX_PATH: "/opt/openmpi/"

  dependencies:
    - build:ubuntu1604_gcc48
  needs:
    - build:ubuntu1604_gcc48


# Build on ubuntu1604 with tbb and test on ubuntu1604
# Uses clang 5
build:ubuntu1604_clang5:
  tags:
    - build
    - vtkm
    - docker
    - linux
  extends:
    #Requires the cuda docker image as it uses a sufficiently new
    #enough CMake version that supports mpi
    - .ubuntu1604
    - .cmake_build_linux
    - .only-default
  variables:
    CC: "clang-5.0"
    CXX: "clang++-5.0"
    CMAKE_BUILD_TYPE: Debug
    VTKM_SETTINGS: "tbb+static+64bit_floats"

test:ubuntu1604_clang5:
  tags:
    - test
    - vtkm
    - docker
    - linux
  extends:
    - .ubuntu1604
    - .cmake_test_linux
    - .only-default

  dependencies:
    - build:ubuntu1604_clang5
  needs:
    - build:ubuntu1604_clang5
