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