IMHO, it would a little help to use workflow presets like this?
Too, there is much repetition to write in this CMakePresets.json
file!
{
"version": 6,
"cmakeMinimumRequired": {
"major": 3,
"minor": 25,
"patch": 0
},
"configurePresets": [
{
"name": "ci-config-base",
"hidden": true,
"binaryDir": "${sourceDir}/cmake-build-spaces/${presetName}"
},
{
"name": "ci-compiler-clang",
"hidden": true,
"cacheVariables": {
"CMAKE_C_COMPILER": "clang-16",
"CMAKE_CXX_COMPILER": "clang++-16"
}
},
{
"name": "ci-compiler-gcc",
"hidden": true,
"cacheVariables": {
"CMAKE_C_COMPILER": "gcc-12",
"CMAKE_CXX_COMPILER": "g++-12"
}
},
{
"name": "ci-generator-ninja",
"hidden": true,
"generator": "Ninja"
},
{
"name": "ci-clang",
"inherits": [
"ci-config-base",
"ci-compiler-clang",
"ci-generator-ninja"
]
},
{
"name": "ci-gcc",
"inherits": [
"ci-config-base",
"ci-compiler-gcc",
"ci-generator-ninja"
]
}
],
"buildPresets": [
{
"name": "ci-build-base",
"configurePreset": "ci-config-base",
"hidden": true,
"jobs": 4
},
{
"name": "ci-clang",
"inherits": "ci-build-base",
"configurePreset": "ci-clang"
},
{
"name": "ci-gcc",
"inherits": "ci-build-base",
"configurePreset": "ci-gcc"
}
],
"testPresets": [
{
"name": "ci-test-base",
"configurePreset": "ci-config-base",
"hidden": true,
"output": {
"outputOnFailure": true
}
},
{
"name": "ci-clang",
"inherits": "ci-test-base",
"configurePreset": "ci-clang"
},
{
"name": "ci-gcc",
"inherits": "ci-test-base",
"configurePreset": "ci-gcc"
}
],
"packagePresets": [
{
"name": "ci-clang",
"configurePreset": "ci-clang",
"generators": [
"TGZ"
]
},
{
"name": "ci-gcc",
"configurePreset": "ci-gcc",
"generators": [
"TGZ"
]
}
],
"workflowPresets": [
{
"name": "ci-clang",
"steps": [
{
"type": "configure",
"name": "ci-clang"
},
{
"type": "build",
"name": "ci-clang"
},
{
"type": "test",
"name": "ci-clang"
},
{
"type": "package",
"name": "ci-clang"
}
]
},
{
"name": "ci-gcc",
"steps": [
{
"type": "configure",
"name": "ci-gcc"
},
{
"type": "build",
"name": "ci-gcc"
},
{
"type": "test",
"name": "ci-gcc"
},
{
"type": "package",
"name": "ci-gcc"
}
]
}
]
}