Bazel入门

怎么使用Bazel

参考: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如何工作?

参考: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函数的百科全书了解一下!

转载需保留链接来源:VCBeta.CN » Bazel入门

赞 (0)