• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1diff --git a/Android.bp b/Android.bp
2index 884af0e..ecbb83f 100644
3--- a/Android.bp
4+++ b/Android.bp
5@@ -43,8 +43,8 @@ cc_library_headers {
6     min_sdk_version: "29",
7 }
8
9-rust_ffi_shared {
10-    name: "libquiche_shared",
11+rust_defaults {
12+    name: "libquiche_defaults",
13     stem: "libquiche",
14     host_supported: true,
15     crate_name: "quiche",
16@@ -52,10 +52,11 @@ rust_ffi_shared {
17     srcs: ["src/lib.rs"],
18     edition: "2018",
19     features: [
20-        "boringssl-vendored",
21+        "boringssl",
22         "default",
23     ],
24-    rustlibs: [
25+    // Link all crates statically to create a self-contained .so library.
26+    rlibs: [
27         "liblazy_static",
28         "liblibc",
29         "liblibm",
30@@ -65,41 +66,19 @@ rust_ffi_shared {
31         "libslab",
32         "libsmallvec",
33     ],
34-    static_libs: [
35-        "libcrypto",
36-        "libssl",
37-    ],
38+    prefer_rlib: true,
39+    // For DnsResolver (Mainline module introduced in Q).
40     apex_available: [
41         "//apex_available:platform",
42         "com.android.resolv",
43     ],
44-    product_available: true,
45-    vendor_available: true,
46     min_sdk_version: "29",
47 }
48
49-rust_library {
50-    name: "libquiche",
51-    host_supported: true,
52-    crate_name: "quiche",
53-    cargo_env_compat: true,
54-    srcs: ["src/lib.rs"],
55-    edition: "2018",
56-    features: [
57-        "boringssl-vendored",
58-        "default",
59-    ],
60-    rustlibs: [
61-        "liblazy_static",
62-        "liblibc",
63-        "liblibm",
64-        "liblog_rust",
65-        "liboctets",
66-        "libring",
67-        "libslab",
68-        "libsmallvec",
69-    ],
70-    static_libs: [
71+rust_ffi {
72+    name: "libquiche_ffi",
73+    defaults: ["libquiche_defaults"],
74+    shared_libs: [
75         "libcrypto",
76         "libssl",
77     ],
78@@ -107,57 +86,41 @@ rust_library {
79         "//apex_available:platform",
80         "com.android.resolv",
81     ],
82-    product_available: true,
83-    vendor_available: true,
84     min_sdk_version: "29",
85 }
86
87-rust_ffi_static {
88-    name: "libquiche_static",
89-    stem: "libquiche",
90-    host_supported: true,
91-    crate_name: "quiche",
92-    cargo_env_compat: true,
93-    srcs: ["src/lib.rs"],
94-    edition: "2018",
95-    features: [
96-        "boringssl-vendored",
97-        "default",
98-    ],
99-    rustlibs: [
100-        "liblazy_static",
101-        "liblibc",
102-        "liblibm",
103-        "liblog_rust",
104-        "liboctets",
105-        "libring",
106-        "libslab",
107-        "libsmallvec",
108+rust_library {
109+    name: "libquiche",
110+    defaults: ["libquiche_defaults"],
111+    shared_libs: [
112+        "libcrypto",
113+        "libssl",
114     ],
115+}
116+
117+// This target is used by doh_unit_test to prevent compatibility issues
118+// because doh_unit_test needs to be run on the R platform.
119+rust_library_rlib {
120+    name: "libquiche_static",
121+    defaults: ["libquiche_defaults"],
122     static_libs: [
123-        "libcrypto",
124+        "libcrypto_static",
125         "libssl",
126     ],
127     apex_available: [
128         "//apex_available:platform",
129         "com.android.resolv",
130     ],
131-    product_available: true,
132-    vendor_available: true,
133     min_sdk_version: "29",
134 }
135
136-rust_test {
137-    name: "quiche_test_src_lib",
138-    host_supported: true,
139+rust_defaults {
140+    name: "quiche_test_defaults",
141     crate_name: "quiche",
142     cargo_env_compat: true,
143     srcs: ["src/lib.rs"],
144     test_suites: ["general-tests"],
145     auto_gen_config: true,
146-    test_options: {
147-        unit_test: true,
148-    },
149     edition: "2018",
150     features: [
151         "boringssl-vendored",
152@@ -175,10 +138,6 @@ rust_test {
153         "libsmallvec",
154         "liburl",
155     ],
156-    static_libs: [
157-        "libcrypto",
158-        "libssl",
159-    ],
160     data: [
161         "examples/cert.crt",
162         "examples/cert.key",
163@@ -186,3 +145,26 @@ rust_test {
164         "examples/rootca.crt",
165     ],
166 }
167+
168+rust_test_host {
169+    name: "quiche_host_test_src_lib",
170+    defaults: ["quiche_test_defaults"],
171+    test_options: {
172+        unit_test: true,
173+    },
174+    shared_libs: [
175+        "libcrypto",
176+        "libssl",
177+    ],
178+}
179+
180+rust_test {
181+    name: "quiche_device_test_src_lib",
182+    defaults: ["quiche_test_defaults"],
183+    // To run this test in R platform, it's required to statically link
184+    // libcrypto and libssl.
185+    static_libs: [
186+        "libcrypto_static",
187+        "libssl",
188+    ],
189+}
190