1package { 2 default_applicable_licenses: ["Android-Apache-2.0"], 3} 4 5rust_defaults { 6 name: "aconfig_storage_file.defaults", 7 edition: "2021", 8 lints: "none", 9 rustlibs: [ 10 "libanyhow", 11 "libthiserror", 12 "libtempfile", 13 "libprotobuf", 14 "libclap", 15 "libcxx", 16 "libaconfig_storage_protos", 17 "libserde", 18 ], 19} 20 21rust_library { 22 name: "libaconfig_storage_file", 23 crate_name: "aconfig_storage_file", 24 host_supported: true, 25 defaults: ["aconfig_storage_file.defaults"], 26 srcs: ["src/lib.rs"], 27 apex_available: [ 28 "//apex_available:platform", 29 "//apex_available:anyapex", 30 ], 31 min_sdk_version: "29", 32 vendor_available: true, 33 product_available: true, 34} 35 36rust_binary_host { 37 name: "aconfig-storage", 38 defaults: ["aconfig_storage_file.defaults"], 39 srcs: ["src/main.rs"], 40 rustlibs: [ 41 "libaconfig_storage_file", 42 "libserde_json", 43 ], 44} 45 46rust_test_host { 47 name: "aconfig_storage_file.test", 48 test_suites: ["general-tests"], 49 defaults: ["aconfig_storage_file.defaults"], 50 srcs: ["src/lib.rs"], 51} 52 53rust_protobuf { 54 name: "libaconfig_storage_protos", 55 protos: ["protos/aconfig_storage_metadata.proto"], 56 crate_name: "aconfig_storage_protos", 57 source_stem: "aconfig_storage_protos", 58 host_supported: true, 59 apex_available: [ 60 "//apex_available:platform", 61 "//apex_available:anyapex", 62 ], 63 min_sdk_version: "29", 64 vendor_available: true, 65 product_available: true, 66} 67 68cc_library { 69 name: "libaconfig_storage_protos_cc", 70 proto: { 71 export_proto_headers: true, 72 type: "lite", 73 }, 74 srcs: ["protos/aconfig_storage_metadata.proto"], 75 apex_available: [ 76 "//apex_available:platform", 77 "//apex_available:anyapex", 78 ], 79 host_supported: true, 80 min_sdk_version: "29", 81 vendor_available: true, 82 product_available: true, 83 double_loadable: true, 84} 85 86// cxx source codegen from rust api 87genrule { 88 name: "libcxx_aconfig_storage_file_bridge_code", 89 tools: ["cxxbridge"], 90 cmd: "$(location cxxbridge) $(in) > $(out)", 91 srcs: ["src/lib.rs"], 92 out: ["aconfig_storage/lib.rs.cc"], 93} 94 95// cxx header codegen from rust api 96genrule { 97 name: "libcxx_aconfig_storage_file_bridge_header", 98 tools: ["cxxbridge"], 99 cmd: "$(location cxxbridge) $(in) --header > $(out)", 100 srcs: ["src/lib.rs"], 101 out: ["aconfig_storage/lib.rs.h"], 102} 103 104// a static cc lib based on generated code 105rust_ffi_static { 106 name: "libaconfig_storage_file_cxx_bridge", 107 crate_name: "aconfig_storage_file_cxx_bridge", 108 host_supported: true, 109 vendor_available: true, 110 product_available: true, 111 srcs: ["src/lib.rs"], 112 defaults: ["aconfig_storage_file.defaults"], 113 apex_available: [ 114 "//apex_available:platform", 115 "//apex_available:anyapex", 116 ], 117 min_sdk_version: "29", 118} 119 120// storage file parse api cc interface 121cc_library { 122 name: "libaconfig_storage_file_cc", 123 srcs: ["aconfig_storage_file.cpp"], 124 generated_headers: [ 125 "cxx-bridge-header", 126 "libcxx_aconfig_storage_file_bridge_header", 127 ], 128 generated_sources: ["libcxx_aconfig_storage_file_bridge_code"], 129 whole_static_libs: ["libaconfig_storage_file_cxx_bridge"], 130 export_include_dirs: ["include"], 131 host_supported: true, 132 vendor_available: true, 133 product_available: true, 134 shared_libs: [ 135 "libbase", 136 ], 137 apex_available: [ 138 "//apex_available:platform", 139 "//apex_available:anyapex", 140 ], 141 min_sdk_version: "29", 142 double_loadable: true, 143} 144 145// storage file parse api java library 146java_library { 147 name: "aconfig_storage_file_java", 148 srcs: [ 149 "srcs/**/*.java", 150 ], 151 sdk_version: "core_current", 152 min_sdk_version: "29", 153 host_supported: true, 154 apex_available: [ 155 "//apex_available:platform", 156 "//apex_available:anyapex", 157 ], 158} 159 160// storage file parse api java library for core library 161java_library { 162 name: "aconfig_storage_file_java_none", 163 srcs: [ 164 "srcs/**/*.java", 165 ], 166 sdk_version: "none", 167 system_modules: "core-all-system-modules", 168 host_supported: true, 169} 170