ClausKlein
(Claus Klein)
August 16, 2023, 1:44pm
1
{
"version": 7,
"cmakeMinimumRequired": {
"major": 3,
"minor": 27,
"patch": 0
},
"configurePresets": [
{
"name": "default-config",
"hidden": true,
"generator": "Ninja",
"cacheVariables": {
"CMAKE_HOST_SYSTEM_PROCESSOR": "$penv{PROCESSOR_ARCHITECTURE}"
},
"environment": { "VARIANT": "MSVC" }
},
{
"name": "$penv{CC}-config",
"hidden": false,
"inherits": "default-config",
"cacheVariables": {
"CMAKE_C_COMPILER": "$penv{CC}",
"CMAKE_CXX_COMPILER": "$penv{CXX}"
},
"environment": { "VARIANT": "unknown" }
},
{
"name": "clang-config",
"hidden": true,
"inherits": "default-config",
"cacheVariables": {
"CMAKE_C_COMPILER": "clang",
"CMAKE_CXX_COMPILER": "clang++"
},
"environment": { "VARIANT": "Clang" }
},
{
"name": "ninja-multi-vcpkg",
"displayName": "Ninja Multi-Config",
"description": "Configure with vcpkg toolchain and generate Ninja Multi-Config project files for all variants",
"vendor": {
"ClausKlein.de/CMake/1.0": {
"description": "FIXME: We need macro expansion here!",
"inherits": "$penv{CC}-config"
}
},
"inherits": "default-config",
"generator": "Ninja Multi-Config",
"hidden": true,
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": {
"type": "FILEPATH",
"value": "${sourceDir}/vcpkg/scripts/buildsystems/vcpkg.cmake"
},
"VCPKG_CHAINLOAD_TOOLCHAIN_FILE": {
"type": "FILEPATH",
"value": "${sourceDir}/toolchain/WindowsToolchain/Windows.$env{VARIANT}.toolchain.cmake"
}
}
}
]
}
CXX=g++ CC=gcc cmake --list-presets
Available configure presets:
"user-config"
"gcc-debug" - gcc Debug
"gcc-release" - gcc Release
"clang-debug" - clang Debug
"clang-release" - clang Release
"$penv{CC}-config"
Why in general is the expansion so limited to special contexts?. It would open much possibilities to reduce combinatorial explosion. I think even for IDEs it would be easier if that were context free.
1 Like