如何控制哪些 CMake 选项仅出现在 "advanced mode" 中?

How to do I control which CMake options appear only in "advanced mode"?

我在(多个)我的一个项目中使用 CMake 3.x。当我 ccmake . 时,我会看到一个终端屏幕,其中包含各种配置选项 - 据推测,用户可能希望在构建之前手动设置这些选项。如果我按 t 我输入 "advanced mode",并且可以看到许多其他选项。

很好,对吧?除了非高级模式中的某些选项,我认为它们更适合高级模式并且不会始终可见(在我的情况下,这是 FindCUDA.cmake 的结果)。

如何让某些选项只出现在高级模式下?

要使 CACHE 变量仅在 高级 模式下出现在 GUI 中(如 ccmake),请使用命令 mark_as_advanced:

mark_as_advanced(my_cache_var)

通常,mark_as_advanced 由创建变量的脚本调用。例如。 "Find" 脚本将通过 find_pathfind_library.

获得的一些变量标记为高级

但是将由其他脚本创建的变量标记为 "advanced" 是正确的。