bazel learn

Posted by shensunbo on July 19, 2025

bazel 基本规则

BUILD 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// 编译依赖项
cc_library(
    name = "test",
    srcs = [
        "test.cpp", // 源文件或者库文件
    ],
    hdrs = [
        "test.h",    // 头文件
    ],
    deps = [
        "//dependency/glm:glm", // // 表示WORKSPACE所在的路径
        ":configParser",        // 表示当前build文件定义的依赖
    ],
    includes = [
        ".",                    // 指定要包含的头文件路径
        "include"
    ],
    linkopts = [
        "-lglfw",  // 指定依赖的系统库
        "-lGL",
    ],
    visibility = [
        "//visibility:public", // 可见性
    ],
)

// 编译可执行文件
cc_binary(
    name = "refactor_test",
    srcs = [
        "refactor_test.cpp",
    ],
    deps = [
        "//include:log",
        "//dependency/glm:glm",
        "//dependency/stb:stb",
        "//src/core/refactor:render_core",
        ":configParser",
    ],
)

// 编译静态库
cc_binary(
    name = "librender_core.so.1",
    deps = [
        ":render_core",
    ],
    linkshared = True,
)