CMake在makefile中更改颜色

usr*_*567 5 makefile colors cmake

CMake 生成的 make 文件具有彩色输出,以提高可读性。

是否可以更改颜色?我有一个绿色的终端字体,所以我有点松散指示对象已构建的消息的颜色。

Eta*_*ner 5

我假设您正在谈论来自 make 输出(而不是正常的 make 输出本身)的 cmake 添加的消息,在这种情况下,这些行看起来像是硬编码到生成的 makefile 中,并带有包含文字颜色的 cmake cmake_echo_color 命令的参数名称作为参数。因此,似乎没有任何要覆盖的变量或任何可以让您更改它的变量。

所以,不,看起来您无法控制 cmake 用于其各种消息的颜色。在所有。

它甚至没有从终端的 termcap/terminfo 获得它用来控制颜色的值,据我所知,它在源代码中具有硬编码的转义序列。

您唯一能做的就是更改终端的颜色定义。

编辑:在与同事讨论这个问题时,我们想出了一个相当明显和简单的解决方法。创建一个 cmake 包装器脚本,将它的路径分配给$(CMAKE)变量(在生成的 make 行上使用的唯一变量),然后你的包装器需要扫描-E cmake_echo_color命令序列并将命令将使用的任何颜色替换为您要使用的颜色的适当参数。

这种方法的唯一问题是命令行中没有任何内容表明除消息本身之外的任何类别或任何种类,因此以类似连贯方式执行此操作将需要过滤(可能是随机的)消息文本。

  • 是的,调查过程中的每一步都让我对 cmake 所做的选择更加不满。 (3认同)