• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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