1package { 2 default_applicable_licenses: ["Android-Apache-2.0"], 3} 4 5rust_defaults { 6 name: "aconfig_storage_read_api.defaults", 7 edition: "2021", 8 lints: "none", 9 srcs: ["src/lib.rs"], 10 rustlibs: [ 11 "libanyhow", 12 "libmemmap2", 13 "libcxx", 14 "libthiserror", 15 "libaconfig_storage_file", 16 ], 17} 18 19rust_library { 20 name: "libaconfig_storage_read_api", 21 crate_name: "aconfig_storage_read_api", 22 host_supported: true, 23 defaults: ["aconfig_storage_read_api.defaults"], 24 apex_available: [ 25 "//apex_available:platform", 26 "//apex_available:anyapex", 27 ], 28 min_sdk_version: "29", 29} 30 31rust_test_host { 32 name: "aconfig_storage_read_api.test", 33 test_suites: ["general-tests"], 34 defaults: ["aconfig_storage_read_api.defaults"], 35 rustlibs: [ 36 "librand", 37 ], 38 data: [ 39 "tests/package.map", 40 "tests/flag.map", 41 "tests/flag.val", 42 "tests/flag.info", 43 ], 44} 45 46// cxx source codegen from rust api 47genrule { 48 name: "libcxx_aconfig_storage_read_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_read_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_read_api_cxx_bridge", 67 crate_name: "aconfig_storage_read_api_cxx_bridge", 68 host_supported: true, 69 vendor_available: true, 70 product_available: true, 71 defaults: ["aconfig_storage_read_api.defaults"], 72 apex_available: [ 73 "//apex_available:platform", 74 "//apex_available:anyapex", 75 ], 76 min_sdk_version: "29", 77} 78 79// flag read api cc interface 80cc_library { 81 name: "libaconfig_storage_read_api_cc", 82 srcs: ["aconfig_storage_read_api.cpp"], 83 generated_headers: [ 84 "cxx-bridge-header", 85 "libcxx_aconfig_storage_read_api_bridge_header", 86 ], 87 generated_sources: ["libcxx_aconfig_storage_read_api_bridge_code"], 88 whole_static_libs: ["libaconfig_storage_read_api_cxx_bridge"], 89 export_include_dirs: ["include"], 90 host_supported: true, 91 vendor_available: true, 92 product_available: true, 93 apex_available: [ 94 "//apex_available:platform", 95 "//apex_available:anyapex", 96 ], 97 min_sdk_version: "29", 98 target: { 99 linux: { 100 version_script: "libaconfig_storage_read_api_cc.map", 101 }, 102 }, 103 double_loadable: true, 104 afdo: true, 105} 106 107cc_defaults { 108 name: "aconfig_lib_cc_static_link.defaults", 109 shared_libs: [ 110 "libaconfig_storage_read_api_cc", 111 "liblog", 112 ], 113} 114 115rust_ffi_shared { 116 name: "libaconfig_storage_read_api_rust_jni", 117 crate_name: "aconfig_storage_read_api_rust_jni", 118 srcs: ["srcs/lib.rs"], 119 rustlibs: [ 120 "libaconfig_storage_read_api", 121 "libanyhow", 122 "libjni", 123 ], 124 prefer_rlib: true, 125} 126 127java_library { 128 name: "libaconfig_storage_read_api_java", 129 srcs: [ 130 "srcs/**/*.java", 131 ], 132 required: ["libaconfig_storage_read_api_rust_jni"], 133 min_sdk_version: "UpsideDownCake", 134 apex_available: [ 135 "//apex_available:anyapex", 136 "//apex_available:platform", 137 ], 138} 139