blob: 2c91f5c56e022af86a86c89dc14b3c65f9419b11 [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
Austin Schuh4ac96a82019-08-14 20:24:23 -07004package(
5 default_visibility = ["//visibility:public"],
Austin Schuh4ac96a82019-08-14 20:24:23 -07006)
7
Philipp Schrader76342a72023-10-02 13:33:20 -07008licenses(["notice"])
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"],
James Kuszmaulf5eb4682023-09-22 17:16:59 -070044 defines = ["FLATBUFFERS_USE_STD_SPAN"],
Austin Schuh4ac96a82019-08-14 20:24:23 -070045 linkstatic = 1,
Austin Schuh7c75e582020-11-14 16:41:18 -080046 strip_include_prefix = "/include",
47 deps = ["//src:flatbuffers"],
Austin Schuh4ac96a82019-08-14 20:24:23 -070048)
49
50# Public C++ headers for the Flatbuffers library.
51filegroup(
52 name = "public_headers",
53 srcs = [
James Kuszmauldac091f2022-03-22 09:35:06 -070054 "include/flatbuffers/allocator.h",
55 "include/flatbuffers/array.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070056 "include/flatbuffers/base.h",
James Kuszmauldac091f2022-03-22 09:35:06 -070057 "include/flatbuffers/bfbs_generator.h",
58 "include/flatbuffers/buffer.h",
59 "include/flatbuffers/buffer_ref.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070060 "include/flatbuffers/code_generators.h",
James Kuszmauldac091f2022-03-22 09:35:06 -070061 "include/flatbuffers/default_allocator.h",
62 "include/flatbuffers/detached_buffer.h",
63 "include/flatbuffers/flatbuffer_builder.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070064 "include/flatbuffers/flatbuffers.h",
Austin Schuha1d006e2022-09-14 21:50:42 -070065 "include/flatbuffers/flex_flat_util.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070066 "include/flatbuffers/flexbuffers.h",
Austin Schuh7c75e582020-11-14 16:41:18 -080067 "include/flatbuffers/grpc.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070068 "include/flatbuffers/hash.h",
69 "include/flatbuffers/idl.h",
70 "include/flatbuffers/minireflect.h",
71 "include/flatbuffers/reflection.h",
72 "include/flatbuffers/reflection_generated.h",
Austin Schuh7c75e582020-11-14 16:41:18 -080073 "include/flatbuffers/registry.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070074 "include/flatbuffers/stl_emulation.h",
James Kuszmauldac091f2022-03-22 09:35:06 -070075 "include/flatbuffers/string.h",
76 "include/flatbuffers/struct.h",
77 "include/flatbuffers/table.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070078 "include/flatbuffers/util.h",
James Kuszmauldac091f2022-03-22 09:35:06 -070079 "include/flatbuffers/vector.h",
80 "include/flatbuffers/vector_downward.h",
81 "include/flatbuffers/verifier.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070082 ],
83)
84
85# Public flatc compiler library.
86cc_library(
87 name = "flatc_library",
Austin Schuh7c75e582020-11-14 16:41:18 -080088 linkstatic = 1,
89 deps = [
90 "//src:flatc_library",
Austin Schuh4ac96a82019-08-14 20:24:23 -070091 ],
92)
93
94# Public flatc compiler.
95cc_binary(
96 name = "flatc",
James Kuszmauldac091f2022-03-22 09:35:06 -070097 data = ["//reflection:reflection_fbs_schema"],
Austin Schuh4ac96a82019-08-14 20:24:23 -070098 deps = [
Austin Schuh7c75e582020-11-14 16:41:18 -080099 "//src:flatc",
Austin Schuh4ac96a82019-08-14 20:24:23 -0700100 ],
101)
102
Austin Schuh7c75e582020-11-14 16:41:18 -0800103filegroup(
104 name = "flatc_headers",
105 srcs = [
106 "include/flatbuffers/flatc.h",
107 ],
108 visibility = ["//:__subpackages__"],
109)
110
111# Library used by flatbuffer_cc_library rules.
Austin Schuh4ac96a82019-08-14 20:24:23 -0700112cc_library(
113 name = "runtime_cc",
114 hdrs = [
115 "include/flatbuffers/base.h",
116 "include/flatbuffers/flatbuffers.h",
117 "include/flatbuffers/flexbuffers.h",
118 "include/flatbuffers/stl_emulation.h",
119 "include/flatbuffers/util.h",
James Kuszmauldac091f2022-03-22 09:35:06 -0700120 "include/flatbuffers/vector.h",
121 "include/flatbuffers/verifier.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -0700122 ],
Austin Schuh4ac96a82019-08-14 20:24:23 -0700123 linkstatic = 1,
Austin Schuh7c75e582020-11-14 16:41:18 -0800124 strip_include_prefix = "/include",
Austin Schuh4ac96a82019-08-14 20:24:23 -0700125)
Philipp Schradere625ba22020-11-16 20:11:37 -0800126
James Kuszmaulf385c462019-12-24 09:37:34 -0800127py_library(
128 name = "flatpy",
129 srcs = glob(["python/flatbuffers/*.py"]),
130 imports = ["python/"],
131)
Alex Perryb3b50792020-01-18 16:13:45 -0800132
133filegroup(
134 name = "flatjs",
135 srcs = ["js/flatbuffers.js"],
136)