c – 如何将漂亮的印刷作为构建在bazel中的一部分进行整合
现在,我有一个非常愚蠢的漂亮的打印脚本,它有点git-fu来查找格式化(无条件)然后通过clang-format -i运行它们.这种方法有几个缺点:
>某些文件非常庞大,需要永久印刷. 在过去,我能够用CMake做一些具有几个不错的属性的东西,我想在bazel中重现: >只有在经过linting /漂亮打印等之后才构建代码. 在CMake-land中,我使用了这个策略,受SCons代理目标技巧的启发: >引入虚拟目标(例如source – > source.formatted).与此目标关联的操作有两个作用:a)运行clang-format -i source,b)输出/触摸名为source.formatted的文件(这保证了对于合理的文件系统,如果source.formatted比源更新,则源不需要重新格式化) 任何帮助将不胜感激. 解决方法
您可能可以使用方面.如果确实有可能,Bazel-dev可能会指出这一点.
如果您熟悉规则和操作等,快速而肮脏的方式(类似于CMake hackery)就是编写一个宏.对于例如cc_library你会这样做: def clean_cc_library(name,srcs,**kwargs): lint_sources( name = "%s_linted" % name,srcs = srcs,) pretty_print_sources( name = "%s_pretty" % name,srcs = ["%s_linted"],) return native.cc_library( name = name,srcs = ["%s_pretty"],**kwargs ) 那么你当然需要用clean_cc_library替换每个cc_library. lint_sources和pretty_print_sources是你必须自己实现的规则,需要生成清理文件列表. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |