44 lines
1.5 KiB
YAML
44 lines
1.5 KiB
YAML
parameters:
|
|
CXXVersions: [ 14, 17, 20 ]
|
|
buildTypes: [ 'Debug', 'Release' ]
|
|
image: ''
|
|
|
|
compiler: ''
|
|
compilerVersions: ["default"] # if default value, simply uses whatever version is on the machine.
|
|
# the text of this default value doesn't actually matter.
|
|
setupfile: ''
|
|
extraCmakeArgs: ''
|
|
|
|
jobs:
|
|
- ${{ each compilerVersion in parameters.compilerVersions }}:
|
|
- ${{ each CXXVersion in parameters.CXXVersions }}:
|
|
- ${{ each buildType in parameters.buildTypes }}:
|
|
- job:
|
|
displayName: ${{ format('{0} {1} C++{2} {3}', parameters.compiler, compilerVersion, CXXVersion, buildType) }}
|
|
pool:
|
|
vmImage: ${{ parameters.image }}
|
|
continueOnError: false
|
|
|
|
steps:
|
|
- ${{ if not(eq(parameters.setupfile, '')) }}:
|
|
- template: ${{ parameters.setupfile }}
|
|
parameters:
|
|
version: ${{ compilerVersion }}
|
|
|
|
- task: CMake@1
|
|
name: Configure
|
|
inputs:
|
|
workingDirectory: build
|
|
cmakeArgs: '-DGSL_CXX_STANDARD=${{ CXXVersion }} -DCMAKE_BUILD_TYPE=${{ buildType }} -DCI_TESTING:BOOL=ON -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -Werror=dev ${{ parameters.extraCmakeArgs }} .. '
|
|
|
|
- task: CMake@1
|
|
name: Build
|
|
inputs:
|
|
workingDirectory: build
|
|
cmakeArgs: '--build . '
|
|
|
|
- script: ctest . --output-on-failure --no-compress-output
|
|
name: CTest
|
|
workingDirectory: build
|
|
failOnStderr: true
|