1load("@aspect_rules_js//npm:defs.bzl", "npm_link_package") 2load("@npm//:defs.bzl", "npm_link_all_packages") 3load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library") 4 5licenses(["notice"]) 6 7package( 8 default_visibility = ["//visibility:public"], 9) 10 11npm_link_all_packages(name = "node_modules") 12 13npm_link_package( 14 name = "node_modules/flatbuffers", 15 src = "//ts:flatbuffers", 16) 17 18exports_files([ 19 "LICENSE", 20 "tsconfig.json", 21]) 22 23config_setting( 24 name = "platform_freebsd", 25 constraint_values = [ 26 "@platforms//os:freebsd", 27 ], 28) 29 30config_setting( 31 name = "platform_openbsd", 32 constraint_values = [ 33 "@platforms//os:openbsd", 34 ], 35) 36 37filegroup( 38 name = "distribution", 39 srcs = [ 40 "BUILD.bazel", 41 "WORKSPACE", 42 "build_defs.bzl", 43 "typescript.bzl", 44 "//grpc/src/compiler:distribution", 45 "//reflection:distribution", 46 "//src:distribution", 47 "//ts:distribution", 48 ] + glob([ 49 "include/flatbuffers/*.h", 50 ]), 51 visibility = ["//visibility:public"], 52) 53 54# Public flatc library to compile flatbuffer files at runtime. 55cc_library( 56 name = "flatbuffers", 57 hdrs = ["//:public_headers"], 58 linkstatic = 1, 59 strip_include_prefix = "/include", 60 deps = ["//src:flatbuffers"], 61) 62 63# Public C++ headers for the Flatbuffers library. 64filegroup( 65 name = "public_headers", 66 srcs = [ 67 "include/flatbuffers/allocator.h", 68 "include/flatbuffers/array.h", 69 "include/flatbuffers/base.h", 70 "include/flatbuffers/buffer.h", 71 "include/flatbuffers/buffer_ref.h", 72 "include/flatbuffers/code_generator.h", 73 "include/flatbuffers/code_generators.h", 74 "include/flatbuffers/default_allocator.h", 75 "include/flatbuffers/detached_buffer.h", 76 "include/flatbuffers/file_manager.h", 77 "include/flatbuffers/flatbuffer_builder.h", 78 "include/flatbuffers/flatbuffers.h", 79 "include/flatbuffers/flex_flat_util.h", 80 "include/flatbuffers/flexbuffers.h", 81 "include/flatbuffers/grpc.h", 82 "include/flatbuffers/hash.h", 83 "include/flatbuffers/idl.h", 84 "include/flatbuffers/minireflect.h", 85 "include/flatbuffers/reflection.h", 86 "include/flatbuffers/reflection_generated.h", 87 "include/flatbuffers/registry.h", 88 "include/flatbuffers/stl_emulation.h", 89 "include/flatbuffers/string.h", 90 "include/flatbuffers/struct.h", 91 "include/flatbuffers/table.h", 92 "include/flatbuffers/util.h", 93 "include/flatbuffers/vector.h", 94 "include/flatbuffers/vector_downward.h", 95 "include/flatbuffers/verifier.h", 96 ], 97) 98 99# Public flatc compiler library. 100cc_library( 101 name = "flatc_library", 102 linkstatic = 1, 103 deps = [ 104 "//src:flatc_library", 105 ], 106) 107 108# Public flatc compiler. 109cc_binary( 110 name = "flatc", 111 data = ["//reflection:reflection_fbs_schema"], 112 deps = [ 113 "//src:flatc", 114 ], 115) 116 117filegroup( 118 name = "flatc_headers", 119 srcs = [ 120 "include/flatbuffers/flatc.h", 121 ], 122 visibility = ["//:__subpackages__"], 123) 124 125# Library used by flatbuffer_cc_library rules. 126cc_library( 127 name = "runtime_cc", 128 hdrs = [ 129 "include/flatbuffers/base.h", 130 "include/flatbuffers/flatbuffers.h", 131 "include/flatbuffers/flexbuffers.h", 132 "include/flatbuffers/stl_emulation.h", 133 "include/flatbuffers/util.h", 134 "include/flatbuffers/vector.h", 135 "include/flatbuffers/verifier.h", 136 ], 137 linkstatic = 1, 138 strip_include_prefix = "/include", 139) 140