blob: 11cc7f17b154d84306c7cf4abf61a31bf3467363 [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",
53 "include/flatbuffers/flexbuffers.h",
Austin Schuh7c75e582020-11-14 16:41:18 -080054 "include/flatbuffers/grpc.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070055 "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",
Austin Schuh7c75e582020-11-14 16:41:18 -080060 "include/flatbuffers/registry.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070061 "include/flatbuffers/stl_emulation.h",
James Kuszmauldac091f2022-03-22 09:35:06 -070062 "include/flatbuffers/string.h",
63 "include/flatbuffers/struct.h",
64 "include/flatbuffers/table.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070065 "include/flatbuffers/util.h",
James Kuszmauldac091f2022-03-22 09:35:06 -070066 "include/flatbuffers/vector.h",
67 "include/flatbuffers/vector_downward.h",
68 "include/flatbuffers/verifier.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -070069 ],
70)
71
72# Public flatc compiler library.
73cc_library(
74 name = "flatc_library",
Austin Schuh7c75e582020-11-14 16:41:18 -080075 linkstatic = 1,
76 deps = [
77 "//src:flatc_library",
Austin Schuh4ac96a82019-08-14 20:24:23 -070078 ],
79)
80
81# Public flatc compiler.
82cc_binary(
83 name = "flatc",
James Kuszmauldac091f2022-03-22 09:35:06 -070084 data = ["//reflection:reflection_fbs_schema"],
Austin Schuh4ac96a82019-08-14 20:24:23 -070085 deps = [
Austin Schuh7c75e582020-11-14 16:41:18 -080086 "//src:flatc",
Austin Schuh4ac96a82019-08-14 20:24:23 -070087 ],
88)
89
Austin Schuh7c75e582020-11-14 16:41:18 -080090filegroup(
91 name = "flatc_headers",
92 srcs = [
93 "include/flatbuffers/flatc.h",
94 ],
95 visibility = ["//:__subpackages__"],
96)
97
98# Library used by flatbuffer_cc_library rules.
Austin Schuh4ac96a82019-08-14 20:24:23 -070099cc_library(
100 name = "runtime_cc",
101 hdrs = [
102 "include/flatbuffers/base.h",
103 "include/flatbuffers/flatbuffers.h",
104 "include/flatbuffers/flexbuffers.h",
105 "include/flatbuffers/stl_emulation.h",
106 "include/flatbuffers/util.h",
James Kuszmauldac091f2022-03-22 09:35:06 -0700107 "include/flatbuffers/vector.h",
108 "include/flatbuffers/verifier.h",
Austin Schuh4ac96a82019-08-14 20:24:23 -0700109 ],
Austin Schuh4ac96a82019-08-14 20:24:23 -0700110 linkstatic = 1,
Austin Schuh7c75e582020-11-14 16:41:18 -0800111 strip_include_prefix = "/include",
Austin Schuh4ac96a82019-08-14 20:24:23 -0700112)
Philipp Schradere625ba22020-11-16 20:11:37 -0800113
James Kuszmaulf385c462019-12-24 09:37:34 -0800114py_library(
115 name = "flatpy",
116 srcs = glob(["python/flatbuffers/*.py"]),
117 imports = ["python/"],
118)
Alex Perryb3b50792020-01-18 16:13:45 -0800119
120filegroup(
121 name = "flatjs",
122 srcs = ["js/flatbuffers.js"],
123)