blob: 80e66d67c0d4fe3f409c927fd1dbe418b7f1f633 [file] [log] [blame]
# 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
)