小编not*_*eus的帖子

如何将漂亮的打印内容集成到bazel中作为构建的一部分

现在,我有一个非常愚蠢的漂亮打印脚本,该脚本做了一点git-fu查找(无条件地)格式化的文件,然后通过clang-format -i运行它们。这种方法有几个缺点:

  1. 有些文件非常庞大,需要花费很长时间才能打印出来。
  2. 无论基础文件是否实际更改,始终都会进行漂亮的打印。

过去,我能够使用CMake进行处理,这些处理具有一些好特性,我想在bazel中重现这些特性:

  1. 经过棉绒/漂亮印刷/等才能构建代码。
  2. 只有皮棉/精美印刷/等已更改的东西
  3. 无论是否在VC下,都可以打印漂亮的东西

在CMake-land中,我受SCons代理目标欺骗的启发使用了这种策略:

  1. 介绍一个虚拟目标(例如source-> source.formatted)。与该目标关联的操作有两件事:a)运行clang-format -i source,b)输出/触摸名为source.formatted的文件(如果source.formatted比source更新,则对于合理的文件系统,这保证了合理的文件系统)不需要重新格式化)

  2. 添加一个虚拟目标(target_name.aggregated_formatted),该目标汇总与特定库/可执行目标的源相对应的所有.formatted文件

  3. 使库/可执行目标依赖于target_name.aggregated_formatted作为预构建步骤

任何帮助将不胜感激。

c++ clang-format bazel

3
推荐指数
2
解决办法
589
查看次数

标签 统计

bazel ×1

c++ ×1

clang-format ×1