如何列出cmake用户可定义的变量?

时间:2017-05-16 16:30:21

标签: cmake

我想在配置时列出我可以使用-D设置的内容,例如ccmakecmake-gui,但是非交互式。

除了尝试捕获ccmake的输出或自己解析cmake的文件外,我该怎么做?

2 个答案:

答案 0 :(得分:2)

您可以在二进制输出目录中调用以下内容:

cmake -LH .

请参阅CMake's documentation

  

-L[A][H]列出非高级缓存变量。

     

列表缓存变量将运行CMake并列出CMake缓存中未标记为INTERNALADVANCED的所有变量。这将有效地显示当前的CMake设置,然后可以使用-D选项进行更改。更改某些变量可能会导致创建更多变量。

     

如果指定了A,那么它也会显示高级变量。

     

如果指定了H,它还会显示每个变量的帮助。

答案 1 :(得分:0)

如果要列出CMakeLists.txt文件本身的变量,可以迭代目录的CACHE_VARIABLES属性。

对于每个缓存变量,您可以检查其TYPE(使用get_property(CACHE))。类型

  • BOOL
  • PATH
  • FILEPATH
  • STRING

对应变量,适合用户调整。

您也可以检查缓存变量的ADVANCED属性。