# cmake-gui doesn't allow preset configurations to be selected

**URL:** https://discourse.cmake.org/t/cmake-gui-doesnt-allow-preset-configurations-to-be-selected/13734
**Category:** Usage
**Tags:** os:linux, os:windows, os:macos
**Created:** [March 12, 2025, 2:41pm UTC](https://discourse.cmake.org/t/cmake-gui-doesnt-allow-preset-configurations-to-be-selected/13734 "2025-03-12T14:41:31Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![Ravenwater](https://discourse.cmake.org/user_avatar/discourse.cmake.org/ravenwater/32/5401_2.png) [@Ravenwater](https://discourse.cmake.org/u/Ravenwater)
#### Post date: [March 12, 2025, 2:41pm UTC](https://discourse.cmake.org/t/cmake-gui-doesnt-allow-preset-configurations-to-be-selected/13734/1 "2025-03-12T14:41:31Z")

</div>

Running into a problem that cmake-gui doesn’t seem to honor presets:

 ![image](https://discourse.cmake.org/uploads/default/original/2X/d/de8d7245b2f60244fc4c2788582f1193f36719ff.png)

How do we select presets via the GUI workflow?

---

<div class="post-metadata">

### Author: ![Ravenwater](https://discourse.cmake.org/user_avatar/discourse.cmake.org/ravenwater/32/5401_2.png) [@Ravenwater](https://discourse.cmake.org/u/Ravenwater)
#### Post date: [March 13, 2025, 2:23pm UTC](https://discourse.cmake.org/t/cmake-gui-doesnt-allow-preset-configurations-to-be-selected/13734/2 "2025-03-13T14:23:15Z")

</div>

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:

```auto
{
  "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.
