blob: a1b4bf2be19da6dbc933fd2ec6c9ffca70cf2ea9 [file] [log] [blame]
diff --git a/Android.bp b/Android.bp
index 884af0e..ecbb83f 100644
--- a/Android.bp
+++ b/Android.bp
@@ -43,8 +43,8 @@ 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",
@@ -52,10 +52,11 @@ rust_ffi_shared {
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",
@@ -65,41 +66,19 @@ rust_ffi_shared {
"libslab",
"libsmallvec",
],
- static_libs: [
- "libcrypto",
- "libssl",
- ],
+ prefer_rlib: true,
+ // For DnsResolver (Mainline module introduced in Q).
apex_available: [
"//apex_available:platform",
"com.android.resolv",
],
- product_available: true,
- vendor_available: true,
min_sdk_version: "29",
}
-rust_library {
- name: "libquiche",
- host_supported: true,
- crate_name: "quiche",
- cargo_env_compat: true,
- srcs: ["src/lib.rs"],
- edition: "2018",
- features: [
- "boringssl-vendored",
- "default",
- ],
- rustlibs: [
- "liblazy_static",
- "liblibc",
- "liblibm",
- "liblog_rust",
- "liboctets",
- "libring",
- "libslab",
- "libsmallvec",
- ],
- static_libs: [
+rust_ffi {
+ name: "libquiche_ffi",
+ defaults: ["libquiche_defaults"],
+ shared_libs: [
"libcrypto",
"libssl",
],
@@ -107,57 +86,41 @@ rust_library {
"//apex_available:platform",
"com.android.resolv",
],
- product_available: true,
- vendor_available: true,
min_sdk_version: "29",
}
-rust_ffi_static {
- name: "libquiche_static",
- stem: "libquiche",
- host_supported: true,
- crate_name: "quiche",
- cargo_env_compat: true,
- srcs: ["src/lib.rs"],
- edition: "2018",
- features: [
- "boringssl-vendored",
- "default",
- ],
- rustlibs: [
- "liblazy_static",
- "liblibc",
- "liblibm",
- "liblog_rust",
- "liboctets",
- "libring",
- "libslab",
- "libsmallvec",
+rust_library {
+ name: "libquiche",
+ defaults: ["libquiche_defaults"],
+ shared_libs: [
+ "libcrypto",
+ "libssl",
],
+}
+
+// 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",
+ defaults: ["libquiche_defaults"],
static_libs: [
- "libcrypto",
+ "libcrypto_static",
"libssl",
],
apex_available: [
"//apex_available:platform",
"com.android.resolv",
],
- product_available: true,
- vendor_available: true,
min_sdk_version: "29",
}
-rust_test {
- name: "quiche_test_src_lib",
- host_supported: true,
+rust_defaults {
+ name: "quiche_test_defaults",
crate_name: "quiche",
cargo_env_compat: true,
srcs: ["src/lib.rs"],
test_suites: ["general-tests"],
auto_gen_config: true,
- test_options: {
- unit_test: true,
- },
edition: "2018",
features: [
"boringssl-vendored",
@@ -175,10 +138,6 @@ rust_test {
"libsmallvec",
"liburl",
],
- static_libs: [
- "libcrypto",
- "libssl",
- ],
data: [
"examples/cert.crt",
"examples/cert.key",
@@ -186,3 +145,26 @@ rust_test {
"examples/rootca.crt",
],
}
+
+rust_test_host {
+ name: "quiche_host_test_src_lib",
+ defaults: ["quiche_test_defaults"],
+ 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",
+ ],
+}