如何使用CMake计算C项目的构建时间

4

我正在一项C语言项目中工作,为了构建软件,我使用CMake。不幸的是,构建软件需要很长时间。为了分析构建时间,我想要:

  • 打印每个c文件的编译时间
  • 打印整个构建过程的时间

并将它们输出到一个文本文件。

我该如何使用CMake实现这个功能?


也许可以尝试使用CMake服务器模式来实现一些功能? - Some programmer dude
1
@Someprogrammerdude CMake 服务器模式已经被弃用,它已被 CMake 文件 API 取代。我认为这两者都无法对构建做出太多贡献。 - Angew is no longer proud of SO
1个回答

5
我正在进行一个C项目,构建软件时使用的是CMake。
事实上,CMake并不构建任何东西,它不是一个构建工具。CMake用于生成构建系统(如makefile或Visual Studio解决方案),然后再使用正常的构建工具进行构建。即使调用"cmake --build"也只是一个包装器,用于启动适当的构建工具。
这意味着构建时间不受CMake控制。您将需要检查您的构建工具链(gcc、cl等)以获取其计时功能。如果这些需要编译器等命令行选项,则您可以使用常规的CMake机制(例如"target_compile_options()"等)在CMakeLists中设置这些选项。
至于整个构建的计时,您可以使用CMake内置的计时特性"cmake -E time command args...",但这又与构建无关;它只是一个跨平台的方法来计时运行任意命令。

1
我已使用命令set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE“$ {CMAKE_COMMAND} -E time”)。现在我可以在cmd提示窗口中打印出编译时间。我是否还可以将打印的时间重定向到文件中? - elguerrero

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接