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/data/v1/package_v1.map", 40 "tests/data/v1/flag_v1.map", 41 "tests/data/v1/flag_v1.val", 42 "tests/data/v1/flag_v1.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 static_libs: [ 91 "libbase", 92 ], 93 host_supported: true, 94 vendor_available: true, 95 product_available: true, 96 apex_available: [ 97 "//apex_available:platform", 98 "//apex_available:anyapex", 99 ], 100 min_sdk_version: "29", 101 target: { 102 linux: { 103 version_script: "libaconfig_storage_read_api_cc.map", 104 }, 105 }, 106 double_loadable: true, 107 afdo: true, 108} 109 110cc_defaults { 111 name: "aconfig_lib_cc_shared_link.defaults", 112 shared_libs: select(release_flag("RELEASE_READ_FROM_NEW_STORAGE"), { 113 true: ["libaconfig_storage_read_api_cc"], 114 default: [], 115 }), 116} 117 118cc_defaults { 119 name: "aconfig_lib_cc_static_link.defaults", 120 shared_libs: [ 121 "libaconfig_storage_read_api_cc", 122 "liblog", 123 ], 124} 125 126rust_ffi_shared { 127 name: "libaconfig_storage_read_api_rust_jni", 128 crate_name: "aconfig_storage_read_api_rust_jni", 129 srcs: ["srcs/lib.rs"], 130 rustlibs: [ 131 "libaconfig_storage_file", 132 "libaconfig_storage_read_api", 133 "libanyhow", 134 "libjni", 135 ], 136 prefer_rlib: true, 137} 138 139java_library { 140 name: "libaconfig_storage_read_api_java", 141 srcs: [ 142 "srcs/android/aconfig/storage/AconfigStorageReadAPI.java", 143 "srcs/android/aconfig/storage/FlagReadContext.java", 144 "srcs/android/aconfig/storage/PackageReadContext.java", 145 ], 146 required: ["libaconfig_storage_read_api_rust_jni"], 147 min_sdk_version: "UpsideDownCake", 148 apex_available: [ 149 "//apex_available:anyapex", 150 "//apex_available:platform", 151 ], 152} 153 154java_library { 155 name: "aconfig_storage_reader_java", 156 srcs: [ 157 "srcs/android/aconfig/storage/StorageInternalReader.java", 158 "srcs/android/os/flagging/PlatformAconfigPackageInternal.java", 159 ], 160 libs: [ 161 "unsupportedappusage", 162 "strict_mode_stub", 163 "aconfig_storage_stub", 164 ], 165 static_libs: [ 166 "aconfig_storage_file_java", 167 ], 168 sdk_version: "core_current", 169 host_supported: true, 170 visibility: [ 171 "//frameworks/base", 172 "//build/make/tools/aconfig/aconfig_storage_read_api/tests", 173 ], 174} 175