load("@rules_proto//proto:defs.bzl", "proto_library")

# Note: if you are still using WORKSPACE, you will need to patch this file to use the following instead
# load("@python_3_11//:defs.bzl", "py_binary")
load("@python_versions//3.11:defs.bzl", "py_binary")
load("@nanopb_pypi//:requirements.bzl", "requirement")
load("@rules_proto_grpc//:defs.bzl", "proto_plugin")
load("@bazel_skylib//rules:copy_file.bzl", "copy_file")
load("//extra/bazel:nanopb_cc_proto_library.bzl", "cc_nanopb_proto_library")
load("@rules_python//python/pip_install:requirements.bzl", "compile_pip_requirements")
load("@com_google_protobuf//:protobuf.bzl", "py_proto_library")

package(default_visibility = ["//visibility:public"])

licenses(["notice"])

exports_files(["LICENSE.txt"])

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",
    ],
    visibility = ["//visibility:public"],
)

copy_file(
    name = "protoc-gen-nanopb.py",
    src = "generator/protoc-gen-nanopb",
    out = "generator/protoc-gen-nanopb.py",
    allow_symlink = True,
)

py_binary(
    name = "protoc-gen-nanopb",
    srcs = glob([
        "generator/**/*.py",
    ]) + [
        ":protoc-gen-nanopb.py",
    ],
    data = glob([
        "generator/**/*.proto",
    ]),
    imports = [
        "generator",
    ],
    deps = [
        ":nanopb_py_proto",
        requirement("grpcio-tools"),
    ],
)

proto_plugin(
    name = "nanopb_plugin",
    env = {
        "NANOPB_PB2_NO_REBUILD": "1",
    },
    options = [
        "--library-include-format=quote",
    ],
    outputs = [
        "{protopath}.pb.h",
        "{protopath}.pb.c",
    ],
    separate_options_flag = True,
    tool = ":protoc-gen-nanopb",
    use_built_in_shell_environment = False,
    visibility = ["//visibility:public"],
)

proto_library(
    name = "nanopb_proto",
    srcs = [
        "generator/proto/nanopb.proto",
    ],
    strip_import_prefix = "generator/proto/",
    deps = ["@com_google_protobuf//:descriptor_proto"],
)

py_proto_library(
    name = "descriptor_py_proto",
    srcs = [
        "generator/proto/google/protobuf/descriptor.proto",
    ],
    include = "generator/proto",
)

py_proto_library(
    name = "nanopb_py_proto",
    srcs = [
        "generator/proto/nanopb.proto",
    ],
    include = "generator/proto",
    deps = [":descriptor_py_proto"],
)

cc_nanopb_proto_library(
    name = "test_compilation",
    protos = ["@com_google_protobuf//:descriptor_proto"],
    visibility = ["//visibility:private"],
)

proto_library(
    name = "all_types_proto",
    srcs = ["tests/alltypes/alltypes.proto"],
)

cc_nanopb_proto_library(
    name = "all_types_nanopb",
    nanopb_options_files = ["tests/alltypes/alltypes.options"],
    protos = [":all_types_proto"],
    visibility = ["//visibility:private"],
)

cc_test(
    name = "bazel_options_support",
    srcs = ["tests/bazel_options_support/bazel_options_support.cc"],
    deps = [":all_types_nanopb"],
)

# Run `bazel run //:requirements.update` if you want to update the requirements.
compile_pip_requirements(
    name = "requirements",
    extra_args = ["--allow-unsafe"],
    requirements_in = "extra/requirements.txt",
    requirements_txt = "extra/requirements_lock.txt",
)
