如果使用带有 execute_process 命令的 CMake 脚本模式,如何获得彩色控制台输出?

Posted

技术标签:

【中文标题】如果使用带有 execute_process 命令的 CMake 脚本模式,如何获得彩色控制台输出?【英文标题】:How-to have colored console output if using CMake script mode with the execute_process command? 【发布时间】:2020-08-14 21:37:36 【问题描述】:

我目前正在重写基于 CMake 的构建系统,并摆脱了所有依赖于平台的脚本文件(例如 Windows Batch)。

只有一个.cmd 文件按如下方式调用 CMake(有点复杂,但想法是用户永远不必直接调用 cmake)。

cmake -P foo.cmake

foo.cmake 脚本中,使用cmake 执行实际的配置(或--build)调用,例如

cmake_minimum_required(VERSION 3.17)

execute_process(
  COMMAND $CMAKE_COMMAND --build .
  ENCODING AUTO
  )

现在,当调用cmake -P foo.cmake 时,写入控制台的输出是彩色的。如果在终端中执行cmake --build .,则输出是彩色的。

我使用的是 Microsoft Windows v6.1.7601、CMake 3.17.2 和 MSBuild 15.5.180.51428。

    如果使用带有execute_process 命令的 CMake 脚本模式,如何获得彩色控制台输出? 如果execute_process 无法实现:是否存在替代方案?

相关:

How to get colorized output with cmake? http://cmake.3232098.n2.nabble.com/quot-cmake-build-quot-and-colors-td7584342.html http://cmake.3232098.n2.nabble.com/Coloured-output-for-cmake-on-windows-td4279033.html https://github.com/microsoft/vscode-cmake-tools/issues/478

【问题讨论】:

您的问题确实与 [batch-file] 无关,因此您真的不应该使用它的标签。您在.cmd 文件中拥有的只是一个命令(用于运行带有参数的可执行文件),并且该命令可以很容易地从任何命令行界面运行,并且可以使用大量控制台/终端。现在您显然使用的是 Windows,请在问题正文中指定终端/控制台,并将您的 [batch-file] 标签替换为 [cmd]、[powershell] 或与您的问题相关的控制台/终端匹配的任何内容到。谢谢。 @Compo 你是对的,我使用了错误的标签。固定。 【参考方案1】:

您可能想尝试一下 Visual Studio Code 和 Output Colorizer 扩展

【讨论】:

以上是关于如果使用带有 execute_process 命令的 CMake 脚本模式,如何获得彩色控制台输出?的主要内容,如果未能解决你的问题,请参考以下文章

CMake基础教程(30)在cmake里执行命令execute_process

是否可以查看由 execute_process 运行的命令的实时输出?

qmake 等效于 cmake execute_process()

在CMake中生成命令后执行命令

CMake 检查 '/etc/hosts' 以进行 RPM 安装

带有长路径的git clone命令问题[重复]