Improvements to the cache editor

I’ve got a few suggestions for improvements to the GUI cache editor, which I thought I’d post here for discussion rather than on the issue tracker, since these are more exploratory suggestions than hard feature requests.

1. Allow setting descriptions on groups
Currently, the cache editor groups cache variables that start with the same PREFIX_. Individual cache variables can have a help string that is shown when hovering over one; I suggest allowing help/description strings to be set on groups of cache variables as well. The UX would be very similar to help strings for individual variables, displaying the string when hovering over a collapsed group.

2. Allow setting entire groups as advanced
Within CMake code, only individual cache variables have an advanced/non-advanced state. I think it would be useful to be able to set an entire group of cache variables as advanced/non-advanced with a single command.

3. Add a list cache type
Probably the largest proposed change. I propose adding a LIST type that can be specified in the set(CACHE) command. The reason to add a new cache type is that the GUI editor could have a user-friendly way to add/remove individual list items, without the user needing to work with the entire ;-delimited string as a single text string.

I feel like explicit groups would work better. Sometimes the prefixes contain _ which collapses down in the editor.

Again, explicit groups would work better here.

Agreed. Though I think LIST(STRING) and LIST(FILEPATH) might work better in the long run (LIST(LIST(X)) being forbidden due to list nesting not really being a thing).

1 Like

What do you mean by explicit groups? Like, a new command to explicitly add cache entires to a group?

Probably not a new command, but rather a property on CACHE variables.
Something like:
set_property(CACHE Trololo PROPERTY EDITOR_GROUP Gugus)