工具 Bazel

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"], # 指定头文件目录
) 

参考链接

https://bazel.build/

原文地址:https://www.cnblogs.com/yangwenhuan/p/12882366.html