Welcome to mirror list, hosted at ThFree Co, Russian Federation.

BUILD.bazel - github.com/nanopb/nanopb.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: e51e42b2258bd2f465f81e6d9912bd3cb7ce9a0d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
load("@rules_proto//proto:defs.bzl", "proto_library")
load("@rules_python//python: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")

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 = [
        requirement("grpcio-tools"),
    ],
)

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

proto_library(
    name = "descriptor",
    srcs = [
        "generator/proto/google/protobuf/descriptor.proto",
    ],
    strip_import_prefix = "generator/proto/",
)

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

cc_nanopb_proto_library(
    name = "test_compilation",
    protos = [":descriptor"],
    visibility = ["//visibility:private"],
)

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

cc_nanopb_proto_library(
    name = "all_types_nanopb",
    protos = [":all_types_proto"],
    nanopb_options_files = ["tests/alltypes/alltypes.options"],
    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",
)