1.5 预备知识——bazel

在 Apollo Cyber RT 中使用到了 Bazel ,鉴于部分同学之前并没有接触过,所以本节会介绍其简单使用,如果以前已经有所了解,本部分内容可以直接略过。

1.Bazel 简介

概念

Bazel 是google研发的一款开源构建和测试工具,也是一种简单、易读的构建工具。Bazel 支持多种编程语言的项目,并针对多个平台构建输出。

特点

Bazel 具有以下优势:

  • 高级构建语言。Bazel 使用一种抽象的、人类可读的语言在高语义级别上描述项目的构建属性。与其他工具不同,Bazel 在库、二进制文件、脚本和数据集的概念上运行,使您免于编写对编译器和链接器等工具的单独调用的复杂性。

  • Bazel 既快速又可靠。Bazel 会缓存之前完成的所有工作,并跟踪对文件内容和构建命令所做的更改。这样,Bazel 就能知道何时需要重新构建某些内容,并且仅重新构建。如需进一步加快构建速度,您可以将项目设置为以高度并行且增量的方式进行构建。

  • Bazel 是多平台应用。Bazel 可在 Linux、macOS 和 Windows 上运行。Bazel 可以在同一个项目中为多个平台(包括桌面设备、服务器和移动设备)构建二进制文件和可部署软件包。

  • Bazel 可以扩缩。在处理具有 10 万多个源文件的 build 时,Bazel 能够保持敏捷性。它可与数以万计的代码库和用户群进行协作。

  • Bazel 是可扩展的。支持许多语言,您可以扩展 Bazel 以支持任何其他语言或框架。

2.Bazel基本使用流程

在Apollo的docker容器中已经安装了 Bazel,所以我们直接使用即可,Bazel 的使用也比较简单,大致流程如下:

  1. 新建 project 目录,project 目录下新建文件 WORKSPACE;

  2. 新建包,在包下新建BUILD文件;

  3. 包中编写源文件;

  4. 编辑BUILD文件;

  5. 编译;

  6. 执行。

准备工作:在 /apollo/cyber 目录下新建 demo_base_bazel 目录,后续关于 bazel 实现都存储在该目录中。接下来我们就通过不同的案例演示 bazel 的使用。


官网:https://bazel.build/

results matching ""

    No results matching ""