如何解决您如何使CMake打印* all *命令而不仅仅是构建命令?
因此,您可以使用VERBOSE选项使CMake在构建控制台时将所有编译器命令行打印到控制台,但这似乎对不是编译器命令的其他命令没有任何影响。此execute_process
命令:
execute_process(
COMMAND ${_TEST_EXECUTOR} "${_TEST_EXECUTABLE}" --gtest_list_tests
WORKING_DIRECTORY "${_TEST_WORKING_DIR}"
TIMEOUT ${_TEST_DISCOVERY_TIMEOUT}
OUTPUT_VARIABLE output
RESULT_VARIABLE result
)
它实际上是CMake中的Google测试模块的一部分。我遇到一个问题,需要跟踪正在执行的确切命令行。我能够但只能通过手动修改文件来实现。如果我能够吐出CMake执行的所有命令,那就快得多了。
在CMake中有什么方法可以做到吗?
解决方法
要打印execute_process
中的命令,可以使用{% for record in records %}
<tr>
<td>{{ record.name }}</td>
<td>{{ record.confidence_int }}</td>
<td>
<img src="file:///home/linuxbld/sdcard/{{ record.image_location }}" width="128" height="128" />
</td>
在每个execute_process
命令中设置要分别打印的 where :
COMMAND_ECHO
或通过在顶级CMake文件中设置以下变量,在整个CMake项目中普遍使用所有execute_process(
COMMAND ${_TEST_EXECUTOR} "${_TEST_EXECUTABLE}" --gtest_list_tests
WORKING_DIRECTORY "${_TEST_WORKING_DIR}"
TIMEOUT ${_TEST_DISCOVERY_TIMEOUT}
OUTPUT_VARIABLE output
RESULT_VARIABLE result
COMMAND_ECHO STDOUT
)
命令:
execute_process
这些功能在CMake 3.15及更高版本中可用。
对于它的价值,您还可以使用set(CMAKE_EXECUTE_PROCESS_COMMAND_ECHO STDOUT)
command line option获得每条命令的完整打印输出(带有扩展的CMake变量):
cmake
但这可能比您想要的要冗长得多。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。