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