Bazel入门

怎么使用Bazel?
https://docs.bazel.build/versions/master/bazel-overview.html#how-do-i-use-bazel
1、安装Bazel
2、构建项目的workspace
这个文件告诉bazel到哪去找build的输入以及BUILD文件,还有配置了build的输出位置。
3、手写BUILD文件
在Build文件中声明build目标通过使用一个抽象的Python-like语言。(接下来会有一个example介绍)
一个build目标规定了一个输入集合,也就是bazel编译时需要的依赖;build规则;配置build规则的选项
build规则指示了Bazel在build时使用的工具,比如编译器和连接器以及相关的配置。Bazel提供了许多构建规则,涵盖了受支持平台上支持语言中最常见的工件类型。
4、Run Bazel。通过Bazel命令来运行。Bazel会将输出放到workspace的指定位置。

在接下来继续讲具体的workspace、BUILD文件、以及Bazel命令之前,先从整体上看下Bazel是如何work的。

Bazel如何work?
https://docs.bazel.build/versions/master/bazel-overview.html#how-does-bazel-work
running一个build或者test,Bazel需要做下面的事情:
1、加载与目标target相关的BUILD文件
2、分析输入及其依赖,应用所指示的build规则,产生一个action graph
3、执行build actions到输入上,直到产生最终的输出
因为Bazel可以缓存build工作过程,所以可以识别出哪些可以重复使用,不用再次build,也可以明确知道哪些改变需要重新build。换句话说就是Bazel实现了增量编译在保证效率的前提下,还保证了正确性。

突然不想写了,把内容链接发下。
workspace:这是一个目录,这个目录下面有我们要build的软件源码,还有一些软链接(符号链接)到build输出。每个workspace目录都拥有一个名为WORKSPACE的文件,这个文件可以为空,或者包含外部的依赖。具体的Workspace规则见Build的百科(https://docs.bazel.build/versions/master/be/workspace.html
BUILD文件:有一个参考sample(https://github.com/bazelbuild/bazel/blob/master/examples/cpp/BUILD
Bazel命令行:https://docs.bazel.build/versions/master/command-line-reference.html


另外非常重要的一个,Bazel BUILD函数的百科全书了解一下!



评论

此博客中的热门博文

Bazel WORKSPACE文件编写

Bazel BUILD文件的编写

Bazel生成Python的部署文件