| # Copyright 2020 The IREE Authors | 
 | # | 
 | # Licensed under the Apache License v2.0 with LLVM Exceptions. | 
 | # See https://llvm.org/LICENSE.txt for license information. | 
 | # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | 
 |  | 
 | """Generates FlatBuffer source files with flatcc.""" | 
 |  | 
 | def iree_flatbuffer_c_library( | 
 |         name, | 
 |         srcs, | 
 |         flatcc_args = ["--common", "--reader"], | 
 |         testonly = False, | 
 |         **kwargs): | 
 |     flatcc = "@com_github_dvidelabs_flatcc//:flatcc" | 
 |  | 
 |     flags = [ | 
 |         "-o$(RULEDIR)", | 
 |     ] + flatcc_args | 
 |  | 
 |     out_stem = "%s" % (srcs[0].replace(".fbs", "")) | 
 |  | 
 |     outs = [] | 
 |     for arg in flags: | 
 |         if arg == "--reader": | 
 |             outs.append("%s_reader.h" % (out_stem)) | 
 |         if arg == "--builder": | 
 |             outs.append("%s_builder.h" % (out_stem)) | 
 |         if arg == "--verifier": | 
 |             outs.append("%s_verifier.h" % (out_stem)) | 
 |         if arg == "--json": | 
 |             outs.append("%s_json_parser.h" % (out_stem)) | 
 |             outs.append("%s_json_printer.h" % (out_stem)) | 
 |  | 
 |     native.genrule( | 
 |         name = name + "_gen", | 
 |         srcs = srcs, | 
 |         outs = outs, | 
 |         tools = [flatcc], | 
 |         cmd = "$(location %s) %s $(SRCS)" % (flatcc, " ".join(flags)), | 
 |         testonly = testonly, | 
 |     ) | 
 |     native.cc_library( | 
 |         name = name, | 
 |         hdrs = outs, | 
 |         testonly = testonly, | 
 |         **kwargs | 
 |     ) |