xref: /aosp_15_r20/external/tensorflow/third_party/flatbuffers/flatbuffers.BUILD (revision b6fb3261f9314811a0f4371741dbb8839866f948)
1load("@build_bazel_rules_android//android:rules.bzl", "android_library")
2load(":build_defs.bzl", "flatbuffer_py_strip_prefix_srcs")
3
4package(default_visibility = ["//visibility:public"])
5
6licenses(["notice"])  # Apache 2.0
7
8exports_files(["LICENSE.txt"])
9
10licenses(["notice"])
11
12config_setting(
13    name = "platform_freebsd",
14    values = {"cpu": "freebsd"},
15)
16
17config_setting(
18    name = "platform_openbsd",
19    values = {"cpu": "openbsd"},
20)
21
22config_setting(
23    name = "windows",
24    values = {"cpu": "x64_windows"},
25)
26
27load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library")
28
29# Public flatc library to compile flatbuffer files at runtime.
30cc_library(
31    name = "flatbuffers",
32    hdrs = ["//:public_headers"],
33    linkstatic = 1,
34    strip_include_prefix = "/include",
35    visibility = ["//visibility:public"],
36    deps = ["//src:flatbuffers"],
37)
38
39# Public C++ headers for the Flatbuffers library.
40filegroup(
41    name = "public_headers",
42    srcs = [
43        "include/flatbuffers/allocator.h",
44        "include/flatbuffers/array.h",
45        "include/flatbuffers/base.h",
46        "include/flatbuffers/bfbs_generator.h",
47        "include/flatbuffers/buffer.h",
48        "include/flatbuffers/buffer_ref.h",
49        "include/flatbuffers/code_generators.h",
50        "include/flatbuffers/default_allocator.h",
51        "include/flatbuffers/detached_buffer.h",
52        "include/flatbuffers/flatbuffer_builder.h",
53        "include/flatbuffers/flatbuffers.h",
54        "include/flatbuffers/flexbuffers.h",
55        "include/flatbuffers/hash.h",
56        "include/flatbuffers/idl.h",
57        "include/flatbuffers/minireflect.h",
58        "include/flatbuffers/reflection.h",
59        "include/flatbuffers/reflection_generated.h",
60        "include/flatbuffers/registry.h",
61        "include/flatbuffers/stl_emulation.h",
62        "include/flatbuffers/string.h",
63        "include/flatbuffers/struct.h",
64        "include/flatbuffers/table.h",
65        "include/flatbuffers/util.h",
66        "include/flatbuffers/vector.h",
67        "include/flatbuffers/vector_downward.h",
68        "include/flatbuffers/verifier.h",
69    ],
70    visibility = ["//:__subpackages__"],
71)
72
73# Public flatc compiler library.
74cc_library(
75    name = "flatc_library",
76    linkstatic = 1,
77    visibility = ["//visibility:public"],
78    deps = [
79        "@flatbuffers//src:flatc_library",
80    ],
81)
82
83# Public flatc compiler.
84cc_binary(
85    name = "flatc",
86    linkopts = select({
87        ":platform_freebsd": [
88            "-lm",
89        ],
90        ":windows": [],
91        "//conditions:default": [
92            "-lm",
93            "-ldl",
94        ],
95    }),
96    visibility = ["//visibility:public"],
97    deps = [
98        "@flatbuffers//src:flatc",
99    ],
100)
101
102filegroup(
103    name = "flatc_headers",
104    srcs = [
105        "include/flatbuffers/flatc.h",
106    ],
107    visibility = ["//:__subpackages__"],
108)
109
110# Library used by flatbuffer_cc_library rules.
111cc_library(
112    name = "runtime_cc",
113    hdrs = [
114        "include/flatbuffers/allocator.h",
115        "include/flatbuffers/array.h",
116        "include/flatbuffers/base.h",
117        "include/flatbuffers/buffer.h",
118        "include/flatbuffers/buffer_ref.h",
119        "include/flatbuffers/default_allocator.h",
120        "include/flatbuffers/detached_buffer.h",
121        "include/flatbuffers/flatbuffer_builder.h",
122        "include/flatbuffers/flatbuffers.h",
123        "include/flatbuffers/flexbuffers.h",
124        "include/flatbuffers/stl_emulation.h",
125        "include/flatbuffers/string.h",
126        "include/flatbuffers/struct.h",
127        "include/flatbuffers/table.h",
128        "include/flatbuffers/util.h",
129        "include/flatbuffers/vector.h",
130        "include/flatbuffers/vector_downward.h",
131        "include/flatbuffers/verifier.h",
132    ],
133    linkstatic = 1,
134    strip_include_prefix = "/include",
135    visibility = ["//visibility:public"],
136)
137
138flatbuffer_py_strip_prefix_srcs(
139    name = "flatbuffer_py_strip_prefix",
140    srcs = [
141        "python/flatbuffers/__init__.py",
142        "python/flatbuffers/_version.py",
143        "python/flatbuffers/builder.py",
144        "python/flatbuffers/compat.py",
145        "python/flatbuffers/encode.py",
146        "python/flatbuffers/flexbuffers.py",
147        "python/flatbuffers/number_types.py",
148        "python/flatbuffers/packer.py",
149        "python/flatbuffers/table.py",
150        "python/flatbuffers/util.py",
151    ],
152    strip_prefix = "python/flatbuffers/",
153)
154
155filegroup(
156    name = "runtime_py_srcs",
157    srcs = [
158        "__init__.py",
159        "_version.py",
160        "builder.py",
161        "compat.py",
162        "encode.py",
163        "flexbuffers.py",
164        "number_types.py",
165        "packer.py",
166        "table.py",
167        "util.py",
168    ],
169)
170
171py_library(
172    name = "runtime_py",
173    srcs = [":runtime_py_srcs"],
174    visibility = ["//visibility:public"],
175)
176
177filegroup(
178    name = "runtime_java_srcs",
179    srcs = glob(["java/com/google/flatbuffers/**/*.java"]),
180)
181
182java_library(
183    name = "runtime_java",
184    srcs = [":runtime_java_srcs"],
185    visibility = ["//visibility:public"],
186)
187
188android_library(
189    name = "runtime_android",
190    srcs = [":runtime_java_srcs"],
191    visibility = ["//visibility:public"],
192)
193