diff options
Diffstat (limited to 'pw_tokenizer/Android.bp')
-rw-r--r-- | pw_tokenizer/Android.bp | 159 |
1 files changed, 157 insertions, 2 deletions
diff --git a/pw_tokenizer/Android.bp b/pw_tokenizer/Android.bp index d62f1cb04..d3b1614e3 100644 --- a/pw_tokenizer/Android.bp +++ b/pw_tokenizer/Android.bp @@ -20,18 +20,173 @@ cc_library_static { name: "pw_detokenizer", cpp_std: "c++20", vendor_available: true, + host_supported: true, export_include_dirs: ["public"], + header_libs: [ + "fuchsia_sdk_lib_stdcompat", + "pw_assert_headers", + "pw_log_headers", + "pw_log_tokenized_headers", + "pw_log_null_headers", + "pw_polyfill_headers", + "pw_preprocessor_headers", + "pw_span_headers", + ], + export_header_lib_headers: [ + "fuchsia_sdk_lib_stdcompat", + "pw_assert_headers", + "pw_log_headers", + "pw_log_null_headers", + "pw_polyfill_headers", + "pw_preprocessor_headers", + "pw_span_headers", + ], srcs: [ + "base64.cc", "detokenize.cc", "decode.cc", ], + static_libs: [ + "pw_base64", + "pw_bytes", + "pw_containers", + "pw_varint" + ], + export_static_lib_headers: [ + "pw_base64", + "pw_bytes", + "pw_containers", + "pw_varint", + ], +} + +cc_library_static { + name: "pw_tokenizer", + cpp_std: "c++20", + host_supported: true, + vendor_available: true, + export_include_dirs: ["public"], + srcs: [ + "encode_args.cc", + "hash.cc", + "tokenize.cc", + ], header_libs: [ "pw_polyfill_headers", "pw_preprocessor_headers", "pw_span_headers", ], + export_header_lib_headers: [ + "pw_polyfill_headers", + "pw_preprocessor_headers", + "pw_span_headers", + ], static_libs: [ - "pw_bytes", - "pw_varint" + "pw_containers", + "pw_varint", + ], + export_static_lib_headers: [ + "pw_containers", + "pw_varint", + ], +} + +cc_library_static { + name: "pw_tokenizer_base64", + cpp_std: "c++20", + host_supported: true, + vendor_available: true, + export_include_dirs: ["public"], + srcs: [ + "base64.cc", + ], + header_libs: [ + "pw_preprocessor_headers", + "pw_span_headers", + ], + export_header_lib_headers: [ + "pw_preprocessor_headers", + "pw_span_headers", + ], + static_libs: [ + "pw_base64", + "pw_containers", + "pw_string", + "pw_tokenizer", + ], + export_static_lib_headers: [ + "pw_base64", + "pw_containers", + "pw_string", + "pw_tokenizer", + ], +} + +cc_library_headers { + name: "pw_tokenizer_pwpb_headers", + cpp_std: "c++20", + vendor_available: true, + host_supported: true, + generated_headers: [ + "google_protobuf_descriptor_pwpb_h", + "pw_tokenizer_proto_options_pwpb_h", + ], + export_generated_headers: [ + "google_protobuf_descriptor_pwpb_h", + "pw_tokenizer_proto_options_pwpb_h", + ], +} + +// Copies the proto files to a prefix directory to add the prefix to the +// compiled proto. The prefix is taken from the directory name of the first +// item listen in out. +genrule_defaults { + name: "pw_tokenizer_add_prefix_to_proto", + cmd: "out_files=($(out)); prefix=$$(dirname $${out_files[0]}); " + + "mkdir -p $${prefix}; cp -t $${prefix} $(in);" +} + +// The proto subdirectory is added to support the desired options.proto +// filepath. +genrule { + name: "pw_tokenizer_options_proto_with_prefix", + defaults: ["pw_tokenizer_add_prefix_to_proto"], + srcs: [ + "options.proto", + ], + out: [ + "pw_tokenizer/proto/options.proto", + ], +} + +// Expose the generated pw_tokenizer/proto/options.proto. +filegroup { + name: "pw_tokenizer_proto_options_proto", + srcs: [":pw_tokenizer_options_proto_with_prefix"], +} + +genrule { + name: "pw_tokenizer_proto_options_pwpb_h", + srcs: [ + ":libprotobuf-internal-protos", + ":pw_tokenizer_options_proto_with_prefix", + ], + cmd: "python3 $(location pw_protobuf_compiler_py) " + + "--proto-path=external/pigweed/pw_tokenizer/ " + + "--proto-path=external/protobuf/src/ " + + "--out-dir=$$(dirname $(location pw_tokenizer/proto/options.pwpb.h)) " + + "--plugin-path=$(location pw_protobuf_plugin_py) " + + "--compile-dir=$$(dirname $(location :pw_tokenizer_options_proto_with_prefix)) " + + "--sources $(location :pw_tokenizer_options_proto_with_prefix) " + + "--language pwpb " + + "--no-experimental-proto3-optional " + + "--protoc=$(location aprotoc) ", + out: [ + "pw_tokenizer/proto/options.pwpb.h", + ], + tools: [ + "aprotoc", + "pw_protobuf_plugin_py", + "pw_protobuf_compiler_py", ], } |