blob: f77d468bcfceca3c4a21082812054cbc68ca6898 [file] [log] [blame] [edit]
diff --git a/Android.bp b/Android.bp
index 38dd21b..bc3ee19 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",
@@ -63,10 +64,8 @@ rust_ffi_shared {
"liboctets",
"libring",
],
- static_libs: [
- "libcrypto",
- "libssl",
- ],
+ prefer_rlib: true,
+ // For DnsResolver (Mainline module introduced in Q).
apex_available: [
"//apex_available:platform",
"com.android.resolv",
@@ -74,26 +73,10 @@ rust_ffi_shared {
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",
- ],
- static_libs: [
+rust_ffi {
+ name: "libquiche_ffi",
+ defaults: ["libquiche_defaults"],
+ shared_libs: [
"libcrypto",
"libssl",
],
@@ -104,28 +87,22 @@ rust_library {
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",
+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: [
@@ -135,17 +112,13 @@ rust_ffi_static {
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",
@@ -161,10 +134,6 @@ rust_test {
"libring",
"liburl",
],
- static_libs: [
- "libcrypto",
- "libssl",
- ],
data: [
"examples/cert.crt",
"examples/cert.key",
@@ -172,3 +141,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",
+ ],
+}