【问题标题】:CMake change color in makefileCMake在makefile中更改颜色
【发布时间】:2022-03-01 15:55:13
【问题描述】:

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

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

【问题讨论】:

  • 解决方法:别名 make='make &> make.out || cat make.out && echo "成功"'
  • @JoelKlinger 你没抓住重点。构建对象时的状态消息是绿色的,与我的终端颜色几乎相同。所以很难发现这些信息。

标签: colors makefile cmake


【解决方案1】:

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

所以,不,您似乎无法控制 cmake 用于其各种消息的颜色。完全没有。

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

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

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

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

【讨论】:

  • 您的假设是正确的,我说的是“CMake 添加了来自 make 输出的消息(而不是正常的 make 输出本身)”。感谢您的回答,但很伤心。
  • 是的,调查此问题的每一步都让我对 cmake 做出的选择更加不满。
【解决方案2】:

截至 2022 年,仍无法更改颜色。

我已经用 Kitware 提交了两个关于此的错误:

所以也许事情会像 ccmake 一样有所改善。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-20
    • 2021-05-28
    • 2013-11-06
    • 2019-04-17
    • 2017-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多