general rules:filegroup , genquery , test_suite , alias , config_setting , genrule
genrule可以使用shell命令来执行操作。
该函数的定义中,可以调控的参数有
genrule(name, srcs, outs, cmd, compatible_with, deprecation, distribs, exec_compatible_with, executable, features, licenses, local, message, output_licenses, output_to_bindir, restricted_to, tags, testonly, toolchains, tools, visibility)。
srcs命令用来创建target配置;tools用来创建host配置;output产出配置(没看明白这段话)
https://docs.bazel.build/versions/master/be/make-variables.html记录了可以使用的一些变量
==================================================
bazel 版本 0.16.1
bazel默认配置项在workspace统计目录下的.bazelrc中,该文件不是必须放在这个位置,可以使用--bazelrc=/path/to/bazelrc去指定位置。
bazel的--output_user_root=需要紧紧的挨着bazel的后边,如果中间有参数,指定的output路径可能会出错,这个在官方文档中没有查看到相关的介绍,暂时自己记录下吧
bazel是一个编译代码的软件,由Google开源出来,同类产品如cmake等。
bazel的优势有增量编译速度快,支持remote方式,命令简单易用,支持多种语言等。但是入门较慢,当熟悉基本的操作后就会感到事半功倍的效果。
bazel支持依赖远端代码库,可以指定依赖GitHub上的代码本地进行调用,但是由于国内的网络问题,有的时候下载GitHub上代码或者是国外网站的一些代码的时候会超时(默认是500秒),对于这种问题可以先手动的将代码下载到本地,然后自己上传到自己本地的代码库中,或者是打成包,调整workspace的依赖路径