blob: 657ec862550ae8a3643eb85f9b41b0771023e6f4 [file] [log] [blame]
James Kuszmauldac091f2022-03-22 09:35:06 -07001load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library")
Philipp Schrader175a93c2023-02-19 13:13:40 -08002load("@aspect_rules_js//npm:defs.bzl", "npm_link_package")
James Kuszmauldac091f2022-03-22 09:35:06 -07003
4licenses(["notice"])
5
Austin Schuh4ac96a82019-08-14 20:24:23 -07006package(
7 default_visibility = ["//visibility:public"],
Austin Schuh4ac96a82019-08-14 20:24:23 -07008)
9
Philipp Schrader175a93c2023-02-19 13:13:40 -080010npm_link_package(
11 name = "node_modules/flatbuffers",
12 src = "@com_github_google_flatbuffers//ts:flatbuffers",
13)
14
15npm_link_package(
16 name = "node_modules/flatbuffers_reflection",
17 src = "@com_github_google_flatbuffers//reflection:flatbuffers_reflection",
18)
19
Austin Schuh4ac96a82019-08-14 20:24:23 -070020exports_files([
21 "LICENSE",
Philipp Schradere625ba22020-11-16 20:11:37 -080022 "tsconfig.json",
Austin Schuh4ac96a82019-08-14 20:24:23 -070023])
24
James Kuszmauldac091f2022-03-22 09:35:06 -070025config_setting(
26 name = "platform_freebsd",
27 constraint_values = [
28 "@platforms//os:freebsd",
29 ],
30)
31
32config_setting(
33 name = "platform_openbsd",
34 constraint_values = [
35 "@platforms//os:openbsd",
36 ],
37)
38
Austin Schuh4ac96a82019-08-14 20:24:23 -070039# Public flatc library to compile flatbuffer files at runtime.
40cc_library(
41 name = "flatbuffers",
Austin Schuh7c75e582020-11-14 16:41:18 -080042 hdrs = ["//:public_headers"],
Philipp Schradere625ba22020-11-16 20:11:37 -080043 copts = ["-Wno-cast-align"],
Austin Schuh4ac96a82019-08-14 20:24:23 -070044 linkstatic = 1,
Austin Schuh7c75e582020-11-14 16:41:18 -080045 strip_include_prefix = "/include",
46 deps = ["//src:flatbuffers"],
Austin Schuh4ac96a82019-08-14 20:24:23 -070047)
48
49# Public C++ headers for the Flatbuffers library.
50filegroup(
51 name = "public_headers",
52 srcs = [
James Kuszmauldac091f2022-03-22 09:35:06 -070053 "include/flatbuffers/allocator.h",
54 "include/flatbuffers/array.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070055 "include/flatbuffers/base.h",
James Kuszmauldac091f2022-03-22 09:35:06 -070056 "include/flatbuffers/bfbs_generator.h",
57 "include/flatbuffers/buffer.h",
58 "include/flatbuffers/buffer_ref.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070059 "include/flatbuffers/code_generators.h",
James Kuszmauldac091f2022-03-22 09:35:06 -070060 "include/flatbuffers/default_allocator.h",
61 "include/flatbuffers/detached_buffer.h",
62 "include/flatbuffers/flatbuffer_builder.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070063 "include/flatbuffers/flatbuffers.h",
Austin Schuha1d006e2022-09-14 21:50:42 -070064 "include/flatbuffers/flex_flat_util.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070065 "include/flatbuffers/flexbuffers.h",
Austin Schuh7c75e582020-11-14 16:41:18 -080066 "include/flatbuffers/grpc.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070067 "include/flatbuffers/hash.h",
68 "include/flatbuffers/idl.h",
69 "include/flatbuffers/minireflect.h",
70 "include/flatbuffers/reflection.h",
71 "include/flatbuffers/reflection_generated.h",
Austin Schuh7c75e582020-11-14 16:41:18 -080072 "include/flatbuffers/registry.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070073 "include/flatbuffers/stl_emulation.h",
James Kuszmauldac091f2022-03-22 09:35:06 -070074 "include/flatbuffers/string.h",
75 "include/flatbuffers/struct.h",
76 "include/flatbuffers/table.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070077 "include/flatbuffers/util.h",
James Kuszmauldac091f2022-03-22 09:35:06 -070078 "include/flatbuffers/vector.h",
79 "include/flatbuffers/vector_downward.h",
80 "include/flatbuffers/verifier.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070081 ],
82)
83
84# Public flatc compiler library.
85cc_library(
86 name = "flatc_library",
Austin Schuh7c75e582020-11-14 16:41:18 -080087 linkstatic = 1,
88 deps = [
89 "//src:flatc_library",
Austin Schuh4ac96a82019-08-14 20:24:23 -070090 ],
91)
92
93# Public flatc compiler.
94cc_binary(
95 name = "flatc",
James Kuszmauldac091f2022-03-22 09:35:06 -070096 data = ["//reflection:reflection_fbs_schema"],
Austin Schuh4ac96a82019-08-14 20:24:23 -070097 deps = [
Austin Schuh7c75e582020-11-14 16:41:18 -080098 "//src:flatc",
Austin Schuh4ac96a82019-08-14 20:24:23 -070099 ],
100)
101
Austin Schuh7c75e582020-11-14 16:41:18 -0800102filegroup(
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.
Austin Schuh4ac96a82019-08-14 20:24:23 -0700111cc_library(
112 name = "runtime_cc",
113 hdrs = [
114 "include/flatbuffers/base.h",
115 "include/flatbuffers/flatbuffers.h",
116 "include/flatbuffers/flexbuffers.h",
117 "include/flatbuffers/stl_emulation.h",
118 "include/flatbuffers/util.h",
James Kuszmauldac091f2022-03-22 09:35:06 -0700119 "include/flatbuffers/vector.h",
120 "include/flatbuffers/verifier.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -0700121 ],
Austin Schuh4ac96a82019-08-14 20:24:23 -0700122 linkstatic = 1,
Austin Schuh7c75e582020-11-14 16:41:18 -0800123 strip_include_prefix = "/include",
Austin Schuh4ac96a82019-08-14 20:24:23 -0700124)
Philipp Schradere625ba22020-11-16 20:11:37 -0800125
James Kuszmaulf385c462019-12-24 09:37:34 -0800126py_library(
127 name = "flatpy",
128 srcs = glob(["python/flatbuffers/*.py"]),
129 imports = ["python/"],
130)
Alex Perryb3b50792020-01-18 16:13:45 -0800131
132filegroup(
133 name = "flatjs",
134 srcs = ["js/flatbuffers.js"],
135)