1package { 2 default_applicable_licenses: ["Android-Apache-2.0"], 3} 4 5rust_defaults { 6 name: "aconfig_storage_write_api.defaults", 7 edition: "2021", 8 lints: "none", 9 srcs: ["src/lib.rs"], 10 rustlibs: [ 11 "libanyhow", 12 "libtempfile", 13 "libmemmap2", 14 "libcxx", 15 "libthiserror", 16 "libaconfig_storage_file", 17 "libaconfig_storage_read_api", 18 ], 19 min_sdk_version: "34", 20 apex_available: [ 21 "//apex_available:anyapex", 22 "//apex_available:platform", 23 ], 24} 25 26rust_library { 27 name: "libaconfig_storage_write_api", 28 crate_name: "aconfig_storage_write_api", 29 host_supported: true, 30 defaults: ["aconfig_storage_write_api.defaults"], 31} 32 33rust_test_host { 34 name: "aconfig_storage_write_api.test", 35 test_suites: ["general-tests"], 36 defaults: ["aconfig_storage_write_api.defaults"], 37 data: [ 38 "tests/flag.val", 39 "tests/flag.info", 40 ], 41 rustlibs: [ 42 "libaconfig_storage_read_api", 43 ], 44} 45 46// cxx source codegen from rust api 47genrule { 48 name: "libcxx_aconfig_storage_write_api_bridge_code", 49 tools: ["cxxbridge"], 50 cmd: "$(location cxxbridge) $(in) > $(out)", 51 srcs: ["src/lib.rs"], 52 out: ["aconfig_storage/lib.rs.cc"], 53} 54 55// cxx header codegen from rust api 56genrule { 57 name: "libcxx_aconfig_storage_write_api_bridge_header", 58 tools: ["cxxbridge"], 59 cmd: "$(location cxxbridge) $(in) --header > $(out)", 60 srcs: ["src/lib.rs"], 61 out: ["aconfig_storage/lib.rs.h"], 62} 63 64// a static cc lib based on generated code 65rust_ffi_static { 66 name: "libaconfig_storage_write_api_cxx_bridge", 67 crate_name: "aconfig_storage_write_api_cxx_bridge", 68 host_supported: true, 69 defaults: ["aconfig_storage_write_api.defaults"], 70} 71 72// flag write api cc interface 73cc_library_static { 74 name: "libaconfig_storage_write_api_cc", 75 srcs: ["aconfig_storage_write_api.cpp"], 76 generated_headers: [ 77 "cxx-bridge-header", 78 "libcxx_aconfig_storage_write_api_bridge_header", 79 ], 80 generated_sources: ["libcxx_aconfig_storage_write_api_bridge_code"], 81 whole_static_libs: ["libaconfig_storage_write_api_cxx_bridge"], 82 export_include_dirs: ["include"], 83 static_libs: [ 84 "libaconfig_storage_read_api_cc", 85 "libprotobuf-cpp-lite", 86 "libbase", 87 ], 88} 89