• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library")
2
3licenses(["notice"])
4
5package(
6    default_visibility = ["//visibility:public"],
7)
8
9exports_files([
10    "LICENSE",
11    "tsconfig.json",
12])
13
14config_setting(
15    name = "platform_freebsd",
16    constraint_values = [
17        "@platforms//os:freebsd",
18    ],
19)
20
21config_setting(
22    name = "platform_openbsd",
23    constraint_values = [
24        "@platforms//os:openbsd",
25    ],
26)
27
28filegroup(
29    name = "distribution",
30    srcs = [
31        ".bazelignore",
32        ".npmrc",
33        "BUILD.bazel",
34        "MODULE.bazel",
35        "build_defs.bzl",
36        "package.json",
37        "pnpm-lock.yaml",
38        "typescript.bzl",
39        "//grpc/src/compiler:distribution",
40        "//include/codegen:distribution",
41        "//reflection:distribution",
42        "//src:distribution",
43        "//ts:distribution",
44    ] + glob([
45        "include/flatbuffers/*.h",
46    ]),
47    visibility = ["//visibility:public"],
48)
49
50# Public flatc library to compile flatbuffer files at runtime.
51cc_library(
52    name = "flatbuffers",
53    hdrs = ["//:public_headers"],
54    linkstatic = 1,
55    strip_include_prefix = "/include",
56    deps = ["//src:flatbuffers"],
57)
58
59# Public C++ headers for the Flatbuffers library.
60filegroup(
61    name = "public_headers",
62    srcs = [
63        "include/flatbuffers/allocator.h",
64        "include/flatbuffers/array.h",
65        "include/flatbuffers/base.h",
66        "include/flatbuffers/buffer.h",
67        "include/flatbuffers/buffer_ref.h",
68        "include/flatbuffers/code_generator.h",
69        "include/flatbuffers/code_generators.h",
70        "include/flatbuffers/default_allocator.h",
71        "include/flatbuffers/detached_buffer.h",
72        "include/flatbuffers/file_manager.h",
73        "include/flatbuffers/flatbuffer_builder.h",
74        "include/flatbuffers/flatbuffers.h",
75        "include/flatbuffers/flex_flat_util.h",
76        "include/flatbuffers/flexbuffers.h",
77        "include/flatbuffers/grpc.h",
78        "include/flatbuffers/hash.h",
79        "include/flatbuffers/idl.h",
80        "include/flatbuffers/minireflect.h",
81        "include/flatbuffers/reflection.h",
82        "include/flatbuffers/reflection_generated.h",
83        "include/flatbuffers/registry.h",
84        "include/flatbuffers/stl_emulation.h",
85        "include/flatbuffers/string.h",
86        "include/flatbuffers/struct.h",
87        "include/flatbuffers/table.h",
88        "include/flatbuffers/util.h",
89        "include/flatbuffers/vector.h",
90        "include/flatbuffers/vector_downward.h",
91        "include/flatbuffers/verifier.h",
92    ],
93)
94
95# Public flatc compiler library.
96cc_library(
97    name = "flatc_library",
98    linkstatic = 1,
99    deps = [
100        "//src:flatc_library",
101    ],
102)
103
104# Public flatc compiler.
105cc_binary(
106    name = "flatc",
107    data = ["//reflection:reflection_fbs_schema"],
108    deps = [
109        "//src:flatc",
110    ],
111)
112
113filegroup(
114    name = "flatc_headers",
115    srcs = [
116        "include/flatbuffers/flatc.h",
117    ],
118    visibility = ["//:__subpackages__"],
119)
120
121# Library used by flatbuffer_cc_library rules.
122cc_library(
123    name = "runtime_cc",
124    hdrs = ["//:public_headers"],
125    linkstatic = 1,
126    strip_include_prefix = "/include",
127)
128