Running into a problem that cmake-gui doesn’t seem to honor presets:
How do we select presets via the GUI workflow?
Running into a problem that cmake-gui doesn’t seem to honor presets:
How do we select presets via the GUI workflow?
Interesting, it is a feature of the GUI: it will not allow you to select a preset configuration if that configuration has errors loading it.
After a couple of hours of struggling, I came up with this:
{
"version": 3,
"cmakeMinimumRequired": {
"major": 3,
"minor": 31,
"patch": 0
},
"configurePresets": [
{
"name": "ninja-default",
"hidden": true,
"environment": {
"LLVM_PROJECT_ROOT": "F:/Users/tomtz/dev/clones/llvm-project"
},
"generator": "Ninja"
},
{
"name": "vs17-default",
"hidden": true,
"environment": {
"LLVM_PROJECT_ROOT": "F:/Users/tomtz/dev/clones/llvm-project"
},
"generator": "Visual Studio 17 2022"
},
{
"name": "Ninja-Debug",
"inherits": "ninja-default",
"description": "Ninja Debug build",
"binaryDir": "${sourceDir}/build/${presetName}",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
}
},
{
"name": "Ninja-Release",
"inherits": "ninja-default",
"description": "Ninja Release build",
"binaryDir": "${sourceDir}/build/${presetName}",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"MLIR_DIR": "$env{LLVM_PROJECT_ROOT}/build_msvc/lib/cmake/mlir",
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
}
},
{
"name": "VS17-Debug",
"inherits": "vs17-default",
"description": "Visual Studio 17 Debug build",
"binaryDir": "${sourceDir}/build_msvc/${presetName}",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"MLIR_DIR": "$env{LLVM_PROJECT_ROOT}/build_msvc/lib/cmake/mlir",
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
}
},
{
"name": "VS17-Release",
"inherits": "vs17-default",
"description": "Visual Studio 17 Release build",
"binaryDir": "${sourceDir}/build_msvc/${presetName}",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"MLIR_DIR": "$env{LLVM_PROJECT_ROOT}/build_msvc/lib/cmake/mlir",
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
}
}
],
"buildPresets": [
{
"name": "ninja-default",
"hidden": true,
"configurePreset": "ninja-default"
},
{
"name": "vs17-default",
"hidden": true,
"configurePreset": "vs17-default"
},
{
"name": "Ninja-Debug",
"inherits": "ninja-default",
"configurePreset": "Ninja-Debug"
},
{
"name": "Ninja-Release",
"inherits": "ninja-default",
"configurePreset": "Ninja-Release"
},
{
"name": "VS17-Debug",
"inherits": "vs17-default",
"configurePreset": "VS17-Debug"
},
{
"name": "VS17-Release",
"inherits": "vs17-default",
"configurePreset": "VS17-Release"
}
]
}
Still some hard coded paths I’ll need to virtualize but the basic structure is operational.
Hope this will be helpful for others who encounter this same problem.