| package { |
| default_applicable_licenses: ["Android-Apache-2.0"], |
| } |
| |
| rust_defaults { |
| name: "aconfig_storage_write_api.defaults", |
| edition: "2021", |
| lints: "none", |
| srcs: ["src/lib.rs"], |
| rustlibs: [ |
| "libanyhow", |
| "libtempfile", |
| "libmemmap2", |
| "libcxx", |
| "libthiserror", |
| "libaconfig_storage_file", |
| "libaconfig_storage_read_api", |
| ], |
| min_sdk_version: "34", |
| apex_available: [ |
| "//apex_available:anyapex", |
| "//apex_available:platform", |
| ], |
| } |
| |
| rust_library { |
| name: "libaconfig_storage_write_api", |
| crate_name: "aconfig_storage_write_api", |
| host_supported: true, |
| defaults: ["aconfig_storage_write_api.defaults"], |
| } |
| |
| rust_test_host { |
| name: "aconfig_storage_write_api.test", |
| test_suites: ["general-tests"], |
| defaults: ["aconfig_storage_write_api.defaults"], |
| data: [ |
| "tests/flag.val", |
| "tests/flag.info", |
| ], |
| rustlibs: [ |
| "libaconfig_storage_read_api", |
| ], |
| } |
| |
| // cxx source codegen from rust api |
| genrule { |
| name: "libcxx_aconfig_storage_write_api_bridge_code", |
| tools: ["cxxbridge"], |
| cmd: "$(location cxxbridge) $(in) > $(out)", |
| srcs: ["src/lib.rs"], |
| out: ["aconfig_storage/lib.rs.cc"], |
| } |
| |
| // cxx header codegen from rust api |
| genrule { |
| name: "libcxx_aconfig_storage_write_api_bridge_header", |
| tools: ["cxxbridge"], |
| cmd: "$(location cxxbridge) $(in) --header > $(out)", |
| srcs: ["src/lib.rs"], |
| out: ["aconfig_storage/lib.rs.h"], |
| } |
| |
| // a static cc lib based on generated code |
| rust_ffi_static { |
| name: "libaconfig_storage_write_api_cxx_bridge", |
| crate_name: "aconfig_storage_write_api_cxx_bridge", |
| host_supported: true, |
| defaults: ["aconfig_storage_write_api.defaults"], |
| } |
| |
| // flag write api cc interface |
| cc_library_static { |
| name: "libaconfig_storage_write_api_cc", |
| srcs: ["aconfig_storage_write_api.cpp"], |
| generated_headers: [ |
| "cxx-bridge-header", |
| "libcxx_aconfig_storage_write_api_bridge_header", |
| ], |
| generated_sources: ["libcxx_aconfig_storage_write_api_bridge_code"], |
| whole_static_libs: ["libaconfig_storage_write_api_cxx_bridge"], |
| export_include_dirs: ["include"], |
| static_libs: [ |
| "libaconfig_storage_read_api_cc", |
| "libprotobuf-cpp-lite", |
| "libbase", |
| ], |
| } |