1load("@build_bazel_rules_android//android:rules.bzl", "android_library") 2load(":build_defs.bzl", "flatbuffer_py_strip_prefix_srcs") 3 4package(default_visibility = ["//visibility:public"]) 5 6licenses(["notice"]) # Apache 2.0 7 8exports_files(["LICENSE.txt"]) 9 10licenses(["notice"]) 11 12config_setting( 13 name = "platform_freebsd", 14 values = {"cpu": "freebsd"}, 15) 16 17config_setting( 18 name = "platform_openbsd", 19 values = {"cpu": "openbsd"}, 20) 21 22config_setting( 23 name = "windows", 24 values = {"cpu": "x64_windows"}, 25) 26 27load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library") 28 29# Public flatc library to compile flatbuffer files at runtime. 30cc_library( 31 name = "flatbuffers", 32 hdrs = ["//:public_headers"], 33 linkstatic = 1, 34 strip_include_prefix = "/include", 35 visibility = ["//visibility:public"], 36 deps = ["//src:flatbuffers"], 37) 38 39# Public C++ headers for the Flatbuffers library. 40filegroup( 41 name = "public_headers", 42 srcs = [ 43 "include/flatbuffers/allocator.h", 44 "include/flatbuffers/array.h", 45 "include/flatbuffers/base.h", 46 "include/flatbuffers/bfbs_generator.h", 47 "include/flatbuffers/buffer.h", 48 "include/flatbuffers/buffer_ref.h", 49 "include/flatbuffers/code_generators.h", 50 "include/flatbuffers/default_allocator.h", 51 "include/flatbuffers/detached_buffer.h", 52 "include/flatbuffers/flatbuffer_builder.h", 53 "include/flatbuffers/flatbuffers.h", 54 "include/flatbuffers/flexbuffers.h", 55 "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", 60 "include/flatbuffers/registry.h", 61 "include/flatbuffers/stl_emulation.h", 62 "include/flatbuffers/string.h", 63 "include/flatbuffers/struct.h", 64 "include/flatbuffers/table.h", 65 "include/flatbuffers/util.h", 66 "include/flatbuffers/vector.h", 67 "include/flatbuffers/vector_downward.h", 68 "include/flatbuffers/verifier.h", 69 ], 70 visibility = ["//:__subpackages__"], 71) 72 73# Public flatc compiler library. 74cc_library( 75 name = "flatc_library", 76 linkstatic = 1, 77 visibility = ["//visibility:public"], 78 deps = [ 79 "@flatbuffers//src:flatc_library", 80 ], 81) 82 83# Public flatc compiler. 84cc_binary( 85 name = "flatc", 86 linkopts = select({ 87 ":platform_freebsd": [ 88 "-lm", 89 ], 90 ":windows": [], 91 "//conditions:default": [ 92 "-lm", 93 "-ldl", 94 ], 95 }), 96 visibility = ["//visibility:public"], 97 deps = [ 98 "@flatbuffers//src:flatc", 99 ], 100) 101 102filegroup( 103 name = "flatc_headers", 104 srcs = [ 105 "include/flatbuffers/flatc.h", 106 ], 107 visibility = ["//:__subpackages__"], 108) 109 110# Library used by flatbuffer_cc_library rules. 111cc_library( 112 name = "runtime_cc", 113 hdrs = [ 114 "include/flatbuffers/allocator.h", 115 "include/flatbuffers/array.h", 116 "include/flatbuffers/base.h", 117 "include/flatbuffers/buffer.h", 118 "include/flatbuffers/buffer_ref.h", 119 "include/flatbuffers/default_allocator.h", 120 "include/flatbuffers/detached_buffer.h", 121 "include/flatbuffers/flatbuffer_builder.h", 122 "include/flatbuffers/flatbuffers.h", 123 "include/flatbuffers/flexbuffers.h", 124 "include/flatbuffers/stl_emulation.h", 125 "include/flatbuffers/string.h", 126 "include/flatbuffers/struct.h", 127 "include/flatbuffers/table.h", 128 "include/flatbuffers/util.h", 129 "include/flatbuffers/vector.h", 130 "include/flatbuffers/vector_downward.h", 131 "include/flatbuffers/verifier.h", 132 ], 133 linkstatic = 1, 134 strip_include_prefix = "/include", 135 visibility = ["//visibility:public"], 136) 137 138flatbuffer_py_strip_prefix_srcs( 139 name = "flatbuffer_py_strip_prefix", 140 srcs = [ 141 "python/flatbuffers/__init__.py", 142 "python/flatbuffers/_version.py", 143 "python/flatbuffers/builder.py", 144 "python/flatbuffers/compat.py", 145 "python/flatbuffers/encode.py", 146 "python/flatbuffers/flexbuffers.py", 147 "python/flatbuffers/number_types.py", 148 "python/flatbuffers/packer.py", 149 "python/flatbuffers/table.py", 150 "python/flatbuffers/util.py", 151 ], 152 strip_prefix = "python/flatbuffers/", 153) 154 155filegroup( 156 name = "runtime_py_srcs", 157 srcs = [ 158 "__init__.py", 159 "_version.py", 160 "builder.py", 161 "compat.py", 162 "encode.py", 163 "flexbuffers.py", 164 "number_types.py", 165 "packer.py", 166 "table.py", 167 "util.py", 168 ], 169) 170 171py_library( 172 name = "runtime_py", 173 srcs = [":runtime_py_srcs"], 174 visibility = ["//visibility:public"], 175) 176 177filegroup( 178 name = "runtime_java_srcs", 179 srcs = glob(["java/com/google/flatbuffers/**/*.java"]), 180) 181 182java_library( 183 name = "runtime_java", 184 srcs = [":runtime_java_srcs"], 185 visibility = ["//visibility:public"], 186) 187 188android_library( 189 name = "runtime_android", 190 srcs = [":runtime_java_srcs"], 191 visibility = ["//visibility:public"], 192) 193