来源:Bazel学习
接触bazel
Bazel用于构建项目,可用于linux和windows。
工作区
工作区是一个存放了所有源代码和Bazel编译输出文件的目录,也是整个项目的根目录。同时它包含一些bazel认识的文件:
-
WORKSPACE文件,用于指定当前文件夹就是一个Bazel的工作区,所以WORKSPACE文件总是存在于项目的根目录下;
-
一个或多个BUILD文件,告诉Bazel怎么构建项目的不同部分。(如果工作区中的一个目录包含BUILD文件,那么它就是一个package)。
那么要指定一个目录为Bazel的工作区,就只要在该目录下创建一个空的WORKSPACE文件即可。
当bazel编译项目时,所有的输入和依赖都必须在同一个工作区。属于不同工作区的文件,除非linked,否则相互独立。
BUILD文件
BUILD文件用于告知Bazel如何编译,要输出什么样的二进制文件或库;
BUILD文件中的每一条编译指令被称为一个target,它指向一系列的源文件和依赖,一个target也可以指向别的target。
举例:
//stage1
cc_binary(
name = "hello-world", //target
srcs = ["he