aboutsummaryrefslogtreecommitdiff
path: root/pw_protobuf/Android.bp
blob: 0e3f8a04c47029157c1d637da2a0831a31d9afa5 (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
// Copyright 2022 The Pigweed Authors
//
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
// use this file except in compliance with the License. You may obtain a copy of
// the License at
//
//     https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations under
// the License.

package {
    default_applicable_licenses: ["external_pigweed_license"],
}

cc_library_static {
    name: "pw_protobuf",
    cpp_std: "c++20",
    vendor_available: true,
    export_include_dirs: ["public"],
    header_libs: [
        "fuschia_sdk_lib_fit",
        "fuschia_sdk_lib_stdcompat",
        "pw_assert_headers",
        "pw_assert_log_headers",
        "pw_function_headers",
        "pw_log_headers",
        "pw_log_null_headers",
        "pw_polyfill_headers",
        "pw_preprocessor_headers",
        "pw_result_headers",
        "pw_span_headers",
    ],
    host_supported: true,
    srcs: [
        "decoder.cc",
        "encoder.cc",
        "find.cc",
        "map_utils.cc",
        "message.cc",
        "stream_decoder.cc",
    ],
    static_libs: [
        "pw_bytes",
        "pw_containers",
        "pw_status",
        "pw_stream",
        "pw_string",
        "pw_varint",
    ],
}

genrule {
    name: "pw_protobuf_codegen_protos_py",
    srcs: ["pw_protobuf_codegen_protos/codegen_options.proto"],
    cmd: "$(location aprotoc) " +
         "-I$$(dirname $(in)) " +
         "--python_out=$(genDir) " +
         "$(in)",
    out: [
        "codegen_options_pb2.py",
    ],
    tools: [
        "aprotoc",
    ],
}

python_library_host {
    name: "pw_protobuf_codegen_protos_py_lib",
    srcs: [
        ":pw_protobuf_codegen_protos_py",
    ],
    pkg_path: "pw_protobuf_codegen_protos",
}

genrule {
    name: "pw_protobuf_protos_py",
    srcs: [
        "pw_protobuf_protos/common.proto",
        "pw_protobuf_protos/field_options.proto",
        "pw_protobuf_protos/status.proto",
        ":libprotobuf-internal-descriptor-proto",
    ],
    cmd: "$(location aprotoc) " +
         "-I$$(dirname $(location pw_protobuf_protos/common.proto)) " +
         "-Iexternal/protobuf/src/ " +
         "--python_out=$(genDir) " +
         "$(in)",
    out: [
        "common_pb2.py",
        "field_options_pb2.py",
        "status_pb2.py",
    ],
    tools: [
        "aprotoc",
    ],
}

python_library_host {
    name: "pw_protobuf_protos_py_lib",
    srcs: [
        ":pw_protobuf_protos_py",
    ],
    pkg_path: "pw_protobuf_protos",
}