blob: 6f92eec3509f233e1a73adc43a77d558a3064fa6 [file] [log] [blame]
James Kuszmauldac091f2022-03-22 09:35:06 -07001load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library")
2
3licenses(["notice"])
4
Austin Schuh4ac96a82019-08-14 20:24:23 -07005package(
6 default_visibility = ["//visibility:public"],
Austin Schuh4ac96a82019-08-14 20:24:23 -07007)
8
9exports_files([
10 "LICENSE",
Philipp Schradere625ba22020-11-16 20:11:37 -080011 "tsconfig.json",
Austin Schuh4ac96a82019-08-14 20:24:23 -070012])
13
James Kuszmauldac091f2022-03-22 09:35:06 -070014config_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
Austin Schuh4ac96a82019-08-14 20:24:23 -070028# Public flatc library to compile flatbuffer files at runtime.
29cc_library(
30 name = "flatbuffers",
Austin Schuh7c75e582020-11-14 16:41:18 -080031 hdrs = ["//:public_headers"],
Philipp Schradere625ba22020-11-16 20:11:37 -080032 copts = ["-Wno-cast-align"],
Austin Schuh4ac96a82019-08-14 20:24:23 -070033 linkstatic = 1,
Austin Schuh7c75e582020-11-14 16:41:18 -080034 strip_include_prefix = "/include",
35 deps = ["//src:flatbuffers"],
Austin Schuh4ac96a82019-08-14 20:24:23 -070036)
37
38# Public C++ headers for the Flatbuffers library.
39filegroup(
40 name = "public_headers",
41 srcs = [
James Kuszmauldac091f2022-03-22 09:35:06 -070042 "include/flatbuffers/allocator.h",
43 "include/flatbuffers/array.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070044 "include/flatbuffers/base.h",
James Kuszmauldac091f2022-03-22 09:35:06 -070045 "include/flatbuffers/bfbs_generator.h",
46 "include/flatbuffers/buffer.h",
47 "include/flatbuffers/buffer_ref.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070048 "include/flatbuffers/code_generators.h",
James Kuszmauldac091f2022-03-22 09:35:06 -070049 "include/flatbuffers/default_allocator.h",
50 "include/flatbuffers/detached_buffer.h",
51 "include/flatbuffers/flatbuffer_builder.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070052 "include/flatbuffers/flatbuffers.h",
Austin Schuha1d006e2022-09-14 21:50:42 -070053 "include/flatbuffers/flex_flat_util.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070054 "include/flatbuffers/flexbuffers.h",
Austin Schuh7c75e582020-11-14 16:41:18 -080055 "include/flatbuffers/grpc.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070056 "include/flatbuffers/hash.h",
57 "include/flatbuffers/idl.h",
58 "include/flatbuffers/minireflect.h",
59 "include/flatbuffers/reflection.h",
60 "include/flatbuffers/reflection_generated.h",
Austin Schuh7c75e582020-11-14 16:41:18 -080061 "include/flatbuffers/registry.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070062 "include/flatbuffers/stl_emulation.h",
James Kuszmauldac091f2022-03-22 09:35:06 -070063 "include/flatbuffers/string.h",
64 "include/flatbuffers/struct.h",
65 "include/flatbuffers/table.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070066 "include/flatbuffers/util.h",
James Kuszmauldac091f2022-03-22 09:35:06 -070067 "include/flatbuffers/vector.h",
68 "include/flatbuffers/vector_downward.h",
69 "include/flatbuffers/verifier.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070070 ],
71)
72
73# Public flatc compiler library.
74cc_library(
75 name = "flatc_library",
Austin Schuh7c75e582020-11-14 16:41:18 -080076 linkstatic = 1,
77 deps = [
78 "//src:flatc_library",
Austin Schuh4ac96a82019-08-14 20:24:23 -070079 ],
80)
81
82# Public flatc compiler.
83cc_binary(
84 name = "flatc",
James Kuszmauldac091f2022-03-22 09:35:06 -070085 data = ["//reflection:reflection_fbs_schema"],
Austin Schuh4ac96a82019-08-14 20:24:23 -070086 deps = [
Austin Schuh7c75e582020-11-14 16:41:18 -080087 "//src:flatc",
Austin Schuh4ac96a82019-08-14 20:24:23 -070088 ],
89)
90
Austin Schuh7c75e582020-11-14 16:41:18 -080091filegroup(
92 name = "flatc_headers",
93 srcs = [
94 "include/flatbuffers/flatc.h",
95 ],
96 visibility = ["//:__subpackages__"],
97)
98
99# Library used by flatbuffer_cc_library rules.
Austin Schuh4ac96a82019-08-14 20:24:23 -0700100cc_library(
101 name = "runtime_cc",
102 hdrs = [
103 "include/flatbuffers/base.h",
104 "include/flatbuffers/flatbuffers.h",
105 "include/flatbuffers/flexbuffers.h",
106 "include/flatbuffers/stl_emulation.h",
107 "include/flatbuffers/util.h",
James Kuszmauldac091f2022-03-22 09:35:06 -0700108 "include/flatbuffers/vector.h",
109 "include/flatbuffers/verifier.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -0700110 ],
Austin Schuh4ac96a82019-08-14 20:24:23 -0700111 linkstatic = 1,
Austin Schuh7c75e582020-11-14 16:41:18 -0800112 strip_include_prefix = "/include",
Austin Schuh4ac96a82019-08-14 20:24:23 -0700113)
Philipp Schradere625ba22020-11-16 20:11:37 -0800114
James Kuszmaulf385c462019-12-24 09:37:34 -0800115py_library(
116 name = "flatpy",
117 srcs = glob(["python/flatbuffers/*.py"]),
118 imports = ["python/"],
119)
Alex Perryb3b50792020-01-18 16:13:45 -0800120
121filegroup(
122 name = "flatjs",
123 srcs = ["js/flatbuffers.js"],
124)