blob: f6a32f46d7531e4ba672a9696f82648edb0664b2 [file] [log] [blame]
diff --git a/Android.bp b/Android.bp
index aced8a6..578cc68 100644
--- a/Android.bp
+++ b/Android.bp
@@ -43,25 +43,38 @@ cc_library_headers {
min_sdk_version: "29",
}
-rust_ffi_shared {
- name: "libquiche_shared",
+rust_defaults {
+ name: "libquiche_defaults",
stem: "libquiche",
host_supported: true,
crate_name: "quiche",
srcs: ["src/lib.rs"],
edition: "2018",
features: [
- "boringssl-vendored",
+ "boringssl",
"default",
],
- rustlibs: [
+ // Link all crates statically to create a self-contained .so library.
+ rlibs: [
"liblazy_static",
"liblibc",
"liblibm",
"liblog_rust",
"libring",
],
- static_libs: [
+ prefer_rlib: true,
+ // For DnsResolver (Mainline module introduced in Q).
+ apex_available: [
+ "//apex_available:platform",
+ "com.android.resolv",
+ ],
+ min_sdk_version: "29",
+}
+
+rust_ffi {
+ name: "libquiche_ffi",
+ defaults: ["libquiche_defaults"],
+ shared_libs: [
"libcrypto",
"libssl",
],
@@ -69,52 +82,20 @@ rust_ffi_shared {
rust_library {
name: "libquiche",
- host_supported: true,
- crate_name: "quiche",
- srcs: ["src/lib.rs"],
- edition: "2018",
- features: [
- "boringssl-vendored",
- "default",
- ],
- rustlibs: [
- "liblazy_static",
- "liblibc",
- "liblibm",
- "liblog_rust",
- "libring",
- ],
- static_libs: [
+ defaults: ["libquiche_defaults"],
+ shared_libs: [
"libcrypto",
"libssl",
],
- apex_available: [
- "//apex_available:platform",
- "com.android.resolv",
- ],
- min_sdk_version: "29",
}
-rust_ffi_static {
+// This target is used by doh_unit_test to prevent compatibility issues
+// because doh_unit_test needs to be run on the R platform.
+rust_library_rlib {
name: "libquiche_static",
- stem: "libquiche",
- host_supported: true,
- crate_name: "quiche",
- srcs: ["src/lib.rs"],
- edition: "2018",
- features: [
- "boringssl-vendored",
- "default",
- ],
- rustlibs: [
- "liblazy_static",
- "liblibc",
- "liblibm",
- "liblog_rust",
- "libring",
- ],
+ defaults: ["libquiche_defaults"],
static_libs: [
- "libcrypto",
+ "libcrypto_static",
"libssl",
],
}
@@ -127,7 +108,7 @@ rust_defaults {
auto_gen_config: true,
edition: "2018",
features: [
- "boringssl-vendored",
+ "boringssl",
"default",
],
rustlibs: [
@@ -139,10 +120,6 @@ rust_defaults {
"libring",
"liburl",
],
- static_libs: [
- "libcrypto",
- "libssl",
- ],
data: [
"examples/cert.crt",
"examples/cert.key",
@@ -151,11 +134,21 @@ rust_test_host {
test_options: {
unit_test: true,
},
+ shared_libs: [
+ "libcrypto",
+ "libssl",
+ ],
}
rust_test {
name: "quiche_device_test_src_lib",
defaults: ["quiche_test_defaults"],
+ // To run this test in R platform, it's required to statically link
+ // libcrypto and libssl.
+ static_libs: [
+ "libcrypto_static",
+ "libssl",
+ ],
}
// dependent_library ["feature_list"]