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