# Description:
#   Nanopb, a tiny ANSI C protobuf implementation for use on embedded devices.
# Nanopb project provides its own BUILD file, but without defined PB_FIELD_16BIT,
# which makes the compiler unhappy.

licenses(["notice"])  # Apache 2.0

cc_library(
    name = "nanopb",
    srcs = [
        "pb_common.c",
        "pb_decode.c",
        "pb_encode.c",
    ],
    hdrs = [
        "pb.h",
        "pb_common.h",
        "pb_decode.h",
        "pb_encode.h",
    ],
    defines = [
        "PB_FIELD_16BIT",
    ],
    includes = ["."],
    visibility = ["//visibility:public"],
)
