Bazel是一个开源的构建和测试工具,类似Make、Maven和Gradle。它使用高级构建语言,并且支持多平台和多语言。
1、WORKSPACE文件:放在工程的根目录下,标识Bazel工程。
2、BUILD文件:定义Bazel的构建规则,每条规则都是一个目标(target),一个包(package)包含一个BUILD文件。
3、cc_binary:可执行二进制规则。
cc_binary( name = "hello-world", # target名 srcs = ["hello-world.cc"], # 源文件 )
4、cc_library:库规则。
cc_library( name = "hello-greet", srcs = ["hello-greet.cc"], hdrs = ["hello-greet.h"], # 头文件 )
5、依赖:一个target可以依赖另一个target,并且是增量编译的。
cc_binary( name = "hello-world", srcs = ["hello-world.cc"], deps = [ ":hello-greet", # 依赖 ], )
6、glob:全局匹配,类似CMake。
cc_library( name = "build-all-the-files", srcs = glob(["*.cc"]), hdrs = glob(["*.h"]), # 匹配BUILD文件目录下所有.h文件 )
7、copts:C的编译选项。
cc_library( name = "some_lib", srcs = ["some_lib.cc"], hdrs = ["include/some_lib.h"], copts = ["-Ilegacy/some_lib/include"], # 指定头文件目录 )
参考链接