aboutsummaryrefslogtreecommitdiff
path: root/pw_tokenizer/Android.bp
diff options
context:
space:
mode:
Diffstat (limited to 'pw_tokenizer/Android.bp')
-rw-r--r--pw_tokenizer/Android.bp159
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",
],
}