现在,我有一个非常愚蠢的漂亮打印脚本,该脚本做了一点git-fu查找(无条件地)格式化的文件,然后通过clang-format -i运行它们。这种方法有几个缺点:
过去,我能够使用CMake进行处理,这些处理具有一些好特性,我想在bazel中重现这些特性:
在CMake-land中,我受SCons代理目标欺骗的启发使用了这种策略:
介绍一个虚拟目标(例如source-> source.formatted)。与该目标关联的操作有两件事:a)运行clang-format -i source,b)输出/触摸名为source.formatted的文件(如果source.formatted比source更新,则对于合理的文件系统,这保证了合理的文件系统)不需要重新格式化)
添加一个虚拟目标(target_name.aggregated_formatted),该目标汇总与特定库/可执行目标的源相对应的所有.formatted文件
使库/可执行目标依赖于target_name.aggregated_formatted作为预构建步骤
任何帮助将不胜感激。