presets: Enable use `user preset` to override default `preset` with same name
CMake Error: Could not read presets from E:/CI-Cor-Ready/atos-pkg/preon: Project preset inherits from user preset
CMake Preset
{
"version": 3,
"cmakeMinimumRequired": {
"major": 3,
"minor": 21,
"patch": 0
},
"configurePresets": [
{
"hidden": true,
"name": "default",
"displayName": "Default Config",
"description": "Default build using Ninja generator",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build/default"
},
{
"hidden": true,
"name": "ninja-multi",
"inherits": "default",
"displayName": "Ninja Multi-Config",
"description": "Default build using Ninja Multi-Config generator",
"generator": "Ninja Multi-Config"
},
{
"name": "windows-kit-version",
"environment": {
"WINDOWS_KIT_VERSION": "10.0.19041.x"
}
},
{
"hidden": true,
"name": "windows-only",
"inherits": ["ninja-multi", "windows-kit-version", "windows-kit-version-user"],
"displayName": "Windows-only configuration",
"description": "This build is only available on Windows",
"environment": {
"WINDOWS_KITS": "C:\\Program Files (x86)\\Windows Kits\\10\\",
"VS2015": "$penv{VS140COMNTOOLS}..\\.."
},
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
}
},
{
"name": "vs2015",
"inherits": "windows-only",
"environment": {
"INCLUDE": "$env{VS2015}\\VC\\INCLUDE;$env{VS2015}\\VC\\ATLMFC\\INCLUDE;$env{WINDOWS_KITS}\\include\\$env{WINDOWS_KIT_VERSION}\\ucrt;$env{WINDOWS_KITS}\\include\\$env{WINDOWS_KIT_VERSION}\\shared;$env{WINDOWS_KITS}\\include\\$env{WINDOWS_KIT_VERSION}\\um;$env{WINDOWS_KITS}\\include\\$env{WINDOWS_KIT_VERSION}\\winrt;",
"PATH_BASE": "$env{VS2015}\\Common7\\IDE\\;$env{VS2015}\\VC\\BIN;$env{VS2015}\\Common7\\Tools;C:\\WINDOWS\\Microsoft.NET\\Framework\\v4.0.30319;C:\\Program Files (x86)\\HTML Help Workshop;$env{WINDOWS_KITS}\\bin\\$env{WINDOWS_KIT_VERSION}\\x86;$env{WINDOWS_KITS}\\bin\\x86;$penv{PATH}",
"LIB":"$env{VS2015}\\VC\\LIB;$env{VS2015}\\VC\\ATLMFC\\LIB;$env{WINDOWS_KITS}\\lib\\$env{WINDOWS_KIT_VERSION}\\ucrt\\x86;$env{WINDOWS_KITS}\\lib\\$env{WINDOWS_KIT_VERSION}\\um\\x86;",
"LIBPATH":"C:\\WINDOWS\\Microsoft.NET\\Framework\\v4.0.30319;$env{VS2015}\\VC\\LIB;$env{VS2015}\\VC\\ATLMFC\\LIB;$env{WINDOWS_KITS}\\UnionMetadata;$env{WINDOWS_KITS}\\References;\\Microsoft.VCLibs\\14.0\\References\\CommonConfiguration\\neutral;"
}
},
{
"name": "vs2015-qt",
"inherits": "vs2015",
"environment": {
"QTDIR": "C:\\Qt\\Qt5.9.9\\5.9.9\\msvc2015",
"PATH": "$env{QTDIR};$env{PATH_BASE}"
}
}
],
"buildPresets": [
{
"name": "vs2015-qt-Debug",
"configurePreset": "vs2015-qt",
"configuration": "Debug"
},
{
"name": "vs2015-qt-Release",
"configurePreset": "vs2015-qt",
"configuration": "Release"
}
],
"testPresets": [
{
"name": "default",
"configurePreset": "default",
"output": {"outputOnFailure": true},
"execution": {"noTestsAction": "error", "stopOnFailure": true}
}
],
"vendor": {
"example.com/ExampleIDE/1.0": {
"autoFormat": false
}
}
}
User Preset
{
"version": 3,
"cmakeMinimumRequired": {
"major": 3,
"minor": 21,
"patch": 0
},
"configurePresets": [
{
"name": "windows-kit-version-user",
"environment": {
"WINDOWS_KIT_VERSION": "10.0.19041.0"
}
}
]
}
Also add option to cmake to specify different user preset. So when we have the need share preset to specify different windows kits or different compiler, that's should be good
Edited by Yonggang Luo