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

标签 c++ cmake include

如何查看 CMakeLists.txt 文件并执行 include 命令,并包含适当的代码?

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

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

CMakeLists.txt中的include全部处理完后,是否可以生成并查看拼装结果?泰:^)

最佳答案

最简单的方法是使用--trace--trace-expand旗帜。 他们俩都做cmake将它执行的每一行打印到 stderr 中。 对于 --trace它在读取1 时打印行,对于--trace-expand所有变量首先展开。

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

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

如果输出对于您的需要来说太长2,您可以尝试使用--trace-source=<file> 来减少它。 . 摘自 --help : Trace only this CMake file/module. Multiple options allowed.

1 引号 ""有时会丢失。

2 真的很长...第一次通过几乎是空的项目会产生 14k+ 行日志。连续调用才500+。 CMake 内部发生了很多事情。

关于c++ - cmake3 - 如何处理 CMakeLists.txt 包含命令和查看结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56464122/

相关文章:

关于图形/渲染的 C++/CLI 或纯 C++

c++ - C++ std::container( vector )如何存储其内部结构(元素地址、按索引访问)?

c++ - 这组运算符会导致未定义的行为吗?

xcode - 尝试从 cmake 文件夹生成 Xcode 项目时,出现与 Xcode 新构建系统相关的错误。任何可能的解决方案?

c++ - 使用 Cmake 编译并使用仅 header 库

node.js - 如何将返回的对象包含在另一个 javascript 文件中?

c++ - 返回不准确的鼠标坐标

android - 如何在 android studio 2.2 中添加预构建的 *.so 库

c - 一行 C 程序包含?

c++ - 交叉引用 C++ 程序中包含的 header