cmake3-如何处理CMakeLists.txt包含命令和查看结果

时间:2019-06-05 15:59:07

标签: c++ cmake include

如何使用已执行的包含命令和适当的包含代码查看CMakeLists.txt文件?

示例:想象一个具有多个包含的CMakeLists.txt,如下所示:

include(version)
include(options)
include(programs)
include(settings)
include(stuff)
// etc..

在处理CMakeLists.txt中的所有包含之后,是否可以生成并查看组合结果? Ty:^)

1 个答案:

答案 0 :(得分:4)

最简单的方法是使用--trace--trace-expand标志。 它们都使cmake打印执行到stderr的每一行。 对于--trace,它在读取时打印 1 行,对于--trace-expand,所有变量都首先扩展。

我通常以调用将stderr重定向到cmake.log文件而结束:

cmake . --trace-expand 2> cmake.log

如果输出对于您的需求而言太长了 2 ,您可以尝试使用--trace-source=<file>来减小它。 摘自--helpTrace only this CMake file/module. Multiple options allowed.

1 引号""有时会丢失。

2 确实很长...第一次通过几乎空的项目会产生14k +行日志。连续呼叫仅500+。 CMake胆量中发生了很多事情。