xref: /aosp_15_r20/external/pigweed/pw_log/Android.bp (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1*61c4878aSAndroid Build Coastguard Worker// Copyright 2022 The Pigweed Authors
2*61c4878aSAndroid Build Coastguard Worker//
3*61c4878aSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); you may not
4*61c4878aSAndroid Build Coastguard Worker// use this file except in compliance with the License. You may obtain a copy of
5*61c4878aSAndroid Build Coastguard Worker// the License at
6*61c4878aSAndroid Build Coastguard Worker//
7*61c4878aSAndroid Build Coastguard Worker//     https://www.apache.org/licenses/LICENSE-2.0
8*61c4878aSAndroid Build Coastguard Worker//
9*61c4878aSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*61c4878aSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11*61c4878aSAndroid Build Coastguard Worker// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12*61c4878aSAndroid Build Coastguard Worker// License for the specific language governing permissions and limitations under
13*61c4878aSAndroid Build Coastguard Worker// the License.
14*61c4878aSAndroid Build Coastguard Worker
15*61c4878aSAndroid Build Coastguard Workerpackage {
16*61c4878aSAndroid Build Coastguard Worker    default_applicable_licenses: ["external_pigweed_license"],
17*61c4878aSAndroid Build Coastguard Worker}
18*61c4878aSAndroid Build Coastguard Worker
19*61c4878aSAndroid Build Coastguard Workercc_library_headers {
20*61c4878aSAndroid Build Coastguard Worker    name: "pw_log",
21*61c4878aSAndroid Build Coastguard Worker    cpp_std: "c++20",
22*61c4878aSAndroid Build Coastguard Worker    vendor_available: true,
23*61c4878aSAndroid Build Coastguard Worker    export_include_dirs: ["public"],
24*61c4878aSAndroid Build Coastguard Worker    host_supported: true,
25*61c4878aSAndroid Build Coastguard Worker}
26*61c4878aSAndroid Build Coastguard Worker
27*61c4878aSAndroid Build Coastguard Workercc_library_headers {
28*61c4878aSAndroid Build Coastguard Worker    name: "pw_log_pwpb",
29*61c4878aSAndroid Build Coastguard Worker    cpp_std: "c++20",
30*61c4878aSAndroid Build Coastguard Worker    vendor_available: true,
31*61c4878aSAndroid Build Coastguard Worker    static_libs: [
32*61c4878aSAndroid Build Coastguard Worker        "pw_toolchain",
33*61c4878aSAndroid Build Coastguard Worker    ],
34*61c4878aSAndroid Build Coastguard Worker    export_static_lib_headers: [
35*61c4878aSAndroid Build Coastguard Worker        "pw_toolchain",
36*61c4878aSAndroid Build Coastguard Worker    ],
37*61c4878aSAndroid Build Coastguard Worker    host_supported: true,
38*61c4878aSAndroid Build Coastguard Worker    generated_headers: [
39*61c4878aSAndroid Build Coastguard Worker        "google_protobuf_descriptor_pwpb_h",
40*61c4878aSAndroid Build Coastguard Worker        "pw_log_log_proto_pwpb_h",
41*61c4878aSAndroid Build Coastguard Worker        "pw_log_log_rpc_pwpb_h",
42*61c4878aSAndroid Build Coastguard Worker        "pw_log_log_raw_rpc_h",
43*61c4878aSAndroid Build Coastguard Worker        "pw_protobuf_protos_common_pwpb_h",
44*61c4878aSAndroid Build Coastguard Worker        "pw_tokenizer_proto_options_pwpb_h",
45*61c4878aSAndroid Build Coastguard Worker    ],
46*61c4878aSAndroid Build Coastguard Worker    export_generated_headers: [
47*61c4878aSAndroid Build Coastguard Worker        "google_protobuf_descriptor_pwpb_h",
48*61c4878aSAndroid Build Coastguard Worker        "pw_log_log_proto_pwpb_h",
49*61c4878aSAndroid Build Coastguard Worker        "pw_log_log_rpc_pwpb_h",
50*61c4878aSAndroid Build Coastguard Worker        "pw_log_log_raw_rpc_h",
51*61c4878aSAndroid Build Coastguard Worker        "pw_protobuf_protos_common_pwpb_h",
52*61c4878aSAndroid Build Coastguard Worker        "pw_tokenizer_proto_options_pwpb_h",
53*61c4878aSAndroid Build Coastguard Worker    ],
54*61c4878aSAndroid Build Coastguard Worker}
55*61c4878aSAndroid Build Coastguard Worker
56*61c4878aSAndroid Build Coastguard Worker// Copies the proto files to a prefix directory to add the prefix to the
57*61c4878aSAndroid Build Coastguard Worker// compiled proto. The prefix is taken from the directory name of the first
58*61c4878aSAndroid Build Coastguard Worker// item listen in out.
59*61c4878aSAndroid Build Coastguard Workergenrule_defaults {
60*61c4878aSAndroid Build Coastguard Worker    name: "pw_log_add_prefix_to_proto",
61*61c4878aSAndroid Build Coastguard Worker    cmd: "out_files=($(out)); prefix=$$(dirname $${out_files[0]}); " +
62*61c4878aSAndroid Build Coastguard Worker        "mkdir -p $${prefix}; cp -t $${prefix} $(in);",
63*61c4878aSAndroid Build Coastguard Worker}
64*61c4878aSAndroid Build Coastguard Worker
65*61c4878aSAndroid Build Coastguard Workergenrule {
66*61c4878aSAndroid Build Coastguard Worker    name: "pw_log_log_proto_with_prefix",
67*61c4878aSAndroid Build Coastguard Worker    defaults: ["pw_log_add_prefix_to_proto"],
68*61c4878aSAndroid Build Coastguard Worker    srcs: [
69*61c4878aSAndroid Build Coastguard Worker        "log.proto",
70*61c4878aSAndroid Build Coastguard Worker    ],
71*61c4878aSAndroid Build Coastguard Worker    out: [
72*61c4878aSAndroid Build Coastguard Worker        "pw_log/proto/log.proto",
73*61c4878aSAndroid Build Coastguard Worker    ],
74*61c4878aSAndroid Build Coastguard Worker}
75*61c4878aSAndroid Build Coastguard Worker
76*61c4878aSAndroid Build Coastguard Workergenrule {
77*61c4878aSAndroid Build Coastguard Worker    name: "pw_log_log_proto_pwpb_h",
78*61c4878aSAndroid Build Coastguard Worker    srcs: [
79*61c4878aSAndroid Build Coastguard Worker        ":libprotobuf-internal-protos",
80*61c4878aSAndroid Build Coastguard Worker        ":pw_log_log_proto_with_prefix",
81*61c4878aSAndroid Build Coastguard Worker        ":pw_protobuf_common_proto",
82*61c4878aSAndroid Build Coastguard Worker        ":pw_tokenizer_proto_options_proto",
83*61c4878aSAndroid Build Coastguard Worker    ],
84*61c4878aSAndroid Build Coastguard Worker    cmd: "python3 $(location pw_protobuf_compiler_py) " +
85*61c4878aSAndroid Build Coastguard Worker        "--proto-path=external/pigweed/pw_protobuf/ " +
86*61c4878aSAndroid Build Coastguard Worker        "--proto-path=external/pigweed/pw_tokenizer/ " +
87*61c4878aSAndroid Build Coastguard Worker        "--proto-path=$$(dirname $$(dirname $$(dirname $(location :pw_log_log_proto_with_prefix)))) " +
88*61c4878aSAndroid Build Coastguard Worker        "--proto-path=external/protobuf/src/ " +
89*61c4878aSAndroid Build Coastguard Worker        "--out-dir=$(genDir) " +
90*61c4878aSAndroid Build Coastguard Worker        "--plugin-path=$(location pw_protobuf_plugin_py) " +
91*61c4878aSAndroid Build Coastguard Worker        "--compile-dir=$(genDir) " +
92*61c4878aSAndroid Build Coastguard Worker        "--sources $(location :pw_log_log_proto_with_prefix) " +
93*61c4878aSAndroid Build Coastguard Worker        "--language pwpb " +
94*61c4878aSAndroid Build Coastguard Worker        "--no-experimental-proto3-optional " +
95*61c4878aSAndroid Build Coastguard Worker        "--no-experimental-editions " +
96*61c4878aSAndroid Build Coastguard Worker        "--pwpb-no-oneof-callbacks " +
97*61c4878aSAndroid Build Coastguard Worker        "--protoc=$(location aprotoc) && " +
98*61c4878aSAndroid Build Coastguard Worker        // TODO(b/308678575) - Avoid making an extra copy of the created file.
99*61c4878aSAndroid Build Coastguard Worker        "python3 -c \"import os; import shutil; " +
100*61c4878aSAndroid Build Coastguard Worker        "shutil.copy2(os.path.splitext('$(location :pw_log_log_proto_with_prefix)')[0]+'.pwpb.h', '$(out)')\"",
101*61c4878aSAndroid Build Coastguard Worker    out: [
102*61c4878aSAndroid Build Coastguard Worker        "pw_log/proto/log.pwpb.h",
103*61c4878aSAndroid Build Coastguard Worker    ],
104*61c4878aSAndroid Build Coastguard Worker    tools: [
105*61c4878aSAndroid Build Coastguard Worker        "aprotoc",
106*61c4878aSAndroid Build Coastguard Worker        "pw_protobuf_plugin_py",
107*61c4878aSAndroid Build Coastguard Worker        "pw_protobuf_compiler_py",
108*61c4878aSAndroid Build Coastguard Worker    ],
109*61c4878aSAndroid Build Coastguard Worker}
110*61c4878aSAndroid Build Coastguard Worker
111*61c4878aSAndroid Build Coastguard Workergenrule {
112*61c4878aSAndroid Build Coastguard Worker    name: "pw_log_log_rpc_pwpb_h",
113*61c4878aSAndroid Build Coastguard Worker    srcs: [
114*61c4878aSAndroid Build Coastguard Worker        ":libprotobuf-internal-protos",
115*61c4878aSAndroid Build Coastguard Worker        ":pw_log_log_proto_with_prefix",
116*61c4878aSAndroid Build Coastguard Worker        ":pw_protobuf_common_proto",
117*61c4878aSAndroid Build Coastguard Worker        ":pw_tokenizer_proto_options_proto",
118*61c4878aSAndroid Build Coastguard Worker    ],
119*61c4878aSAndroid Build Coastguard Worker    cmd: "python3 $(location pw_protobuf_compiler_py) " +
120*61c4878aSAndroid Build Coastguard Worker        "--proto-path=external/pigweed/pw_protobuf/ " +
121*61c4878aSAndroid Build Coastguard Worker        "--proto-path=external/pigweed/pw_tokenizer/ " +
122*61c4878aSAndroid Build Coastguard Worker        "--proto-path=$$(dirname $$(dirname $$(dirname $(location :pw_log_log_proto_with_prefix)))) " +
123*61c4878aSAndroid Build Coastguard Worker        "--proto-path=external/protobuf/src/ " +
124*61c4878aSAndroid Build Coastguard Worker        "--out-dir=$(genDir) " +
125*61c4878aSAndroid Build Coastguard Worker        "--plugin-path=$(location pw_rpc_plugin_pwpb_py) " +
126*61c4878aSAndroid Build Coastguard Worker        "--compile-dir=$(genDir) " +
127*61c4878aSAndroid Build Coastguard Worker        "--sources $(location :pw_log_log_proto_with_prefix) " +
128*61c4878aSAndroid Build Coastguard Worker        "--language pwpb_rpc " +
129*61c4878aSAndroid Build Coastguard Worker        "--no-experimental-proto3-optional " +
130*61c4878aSAndroid Build Coastguard Worker        "--no-experimental-editions " +
131*61c4878aSAndroid Build Coastguard Worker        "--pwpb-no-oneof-callbacks " +
132*61c4878aSAndroid Build Coastguard Worker        "--protoc=$(location aprotoc) && " +
133*61c4878aSAndroid Build Coastguard Worker        // TODO(b/308678575) - Avoid making an extra copy of the created file.
134*61c4878aSAndroid Build Coastguard Worker        "python3 -c \"import os; import shutil; " +
135*61c4878aSAndroid Build Coastguard Worker        "shutil.copy2(os.path.splitext('$(location :pw_log_log_proto_with_prefix)')[0]+'.rpc.pwpb.h', '$(out)')\"",
136*61c4878aSAndroid Build Coastguard Worker    out: [
137*61c4878aSAndroid Build Coastguard Worker        "pw_log/proto/log.rpc.pwpb.h",
138*61c4878aSAndroid Build Coastguard Worker    ],
139*61c4878aSAndroid Build Coastguard Worker    tools: [
140*61c4878aSAndroid Build Coastguard Worker        "aprotoc",
141*61c4878aSAndroid Build Coastguard Worker        "pw_protobuf_compiler_py",
142*61c4878aSAndroid Build Coastguard Worker        "pw_rpc_plugin_pwpb_py",
143*61c4878aSAndroid Build Coastguard Worker    ],
144*61c4878aSAndroid Build Coastguard Worker}
145*61c4878aSAndroid Build Coastguard Worker
146*61c4878aSAndroid Build Coastguard Workergenrule {
147*61c4878aSAndroid Build Coastguard Worker    name: "pw_log_log_raw_rpc_h",
148*61c4878aSAndroid Build Coastguard Worker    srcs: [
149*61c4878aSAndroid Build Coastguard Worker        ":libprotobuf-internal-protos",
150*61c4878aSAndroid Build Coastguard Worker        ":pw_log_log_proto_with_prefix",
151*61c4878aSAndroid Build Coastguard Worker        ":pw_protobuf_common_proto",
152*61c4878aSAndroid Build Coastguard Worker        ":pw_tokenizer_proto_options_proto",
153*61c4878aSAndroid Build Coastguard Worker    ],
154*61c4878aSAndroid Build Coastguard Worker    cmd: "python3 $(location pw_protobuf_compiler_py) " +
155*61c4878aSAndroid Build Coastguard Worker        "--proto-path=external/pigweed/pw_protobuf/ " +
156*61c4878aSAndroid Build Coastguard Worker        "--proto-path=external/pigweed/pw_tokenizer/ " +
157*61c4878aSAndroid Build Coastguard Worker        "--proto-path=$$(dirname $$(dirname $$(dirname $(location :pw_log_log_proto_with_prefix)))) " +
158*61c4878aSAndroid Build Coastguard Worker        "--proto-path=external/protobuf/src/ " +
159*61c4878aSAndroid Build Coastguard Worker        "--out-dir=$(genDir) " +
160*61c4878aSAndroid Build Coastguard Worker        "--plugin-path=$(location pw_rpc_plugin_rawpb_py) " +
161*61c4878aSAndroid Build Coastguard Worker        "--compile-dir=$(genDir) " +
162*61c4878aSAndroid Build Coastguard Worker        "--sources $(location :pw_log_log_proto_with_prefix) " +
163*61c4878aSAndroid Build Coastguard Worker        "--language raw_rpc " +
164*61c4878aSAndroid Build Coastguard Worker        "--no-experimental-proto3-optional " +
165*61c4878aSAndroid Build Coastguard Worker        "--no-experimental-editions " +
166*61c4878aSAndroid Build Coastguard Worker        "--pwpb-no-oneof-callbacks " +
167*61c4878aSAndroid Build Coastguard Worker        "--protoc=$(location aprotoc) && " +
168*61c4878aSAndroid Build Coastguard Worker        // TODO(b/308678575) - Avoid making an extra copy of the created file.
169*61c4878aSAndroid Build Coastguard Worker        "python3 -c \"import os; import shutil; " +
170*61c4878aSAndroid Build Coastguard Worker        "shutil.copy2(os.path.splitext('$(location :pw_log_log_proto_with_prefix)')[0]+'.raw_rpc.pb.h', '$(out)')\"",
171*61c4878aSAndroid Build Coastguard Worker    out: [
172*61c4878aSAndroid Build Coastguard Worker        "pw_log/proto/log.raw_rpc.pb.h",
173*61c4878aSAndroid Build Coastguard Worker    ],
174*61c4878aSAndroid Build Coastguard Worker    tools: [
175*61c4878aSAndroid Build Coastguard Worker        "aprotoc",
176*61c4878aSAndroid Build Coastguard Worker        "pw_protobuf_compiler_py",
177*61c4878aSAndroid Build Coastguard Worker        "pw_rpc_plugin_rawpb_py",
178*61c4878aSAndroid Build Coastguard Worker    ],
179*61c4878aSAndroid Build Coastguard Worker}
180*61c4878aSAndroid Build Coastguard Worker
181*61c4878aSAndroid Build Coastguard Workerandroid_library {
182*61c4878aSAndroid Build Coastguard Worker    name: "pw_log_android_java",
183*61c4878aSAndroid Build Coastguard Worker    srcs: ["java/android_main/dev/pigweed/pw_log/*.java"],
184*61c4878aSAndroid Build Coastguard Worker    visibility: ["//visibility:public"],
185*61c4878aSAndroid Build Coastguard Worker    sdk_version: "current",
186*61c4878aSAndroid Build Coastguard Worker}
187