由CMake生成的make文件具有彩色输出,以提高可读性。
是否可以更改颜色?我有一个绿色的终端字体,所以我有点松了指示对象已建立的消息的颜色。
我假设您正在谈论的是从make输出(而不是正常的make输出本身)添加的cmake消息,在这种情况下,看起来这些行被硬编码到生成的makefile中,带有cmake cmake_echo_color命令的参数,包括颜色文字名称作为参数。因此,似乎没有任何要覆盖的变量或任何可让您更改的变量。]>
所以,不,您似乎无法控制cmake各种消息使用的颜色。完全没有。
它甚至没有从终端的termcap / terminfo中获得用于控制颜色的值,据我所知,它在源代码中具有硬编码的转义序列。
唯一可以做的就是更改终端的颜色定义。
编辑:在与同事讨论此问题时,我们提出了一个非常明显且不复杂的解决方法。创建一个cmake包装器脚本,将其路径分配给$(CMAKE)
变量(生成的make行上唯一使用的变量),然后包装器需要扫描-E cmake_echo_color
命令序列并替换该命令所用的颜色将与要使用的颜色一起使用适当的参数。
这种方法的唯一问题是,除了消息本身,命令行中没有任何内容可以指示任何类别或种类,因此以类似连贯的方式进行操作将需要进行过滤(可能随机的)消息文本。
在当前的主计算机中(将成为CMake 3.18),CMake学会了一个新变量,称为CCMAKE_COLORS
,它可以更改输出颜色。引用文档: