diff options
author | Bernie Innocenti <codewiz@google.com> | 2020-12-09 23:22:48 +0900 |
---|---|---|
committer | Bernie Innocenti <codewiz@google.com> | 2020-12-14 20:15:53 +0900 |
commit | ead1814d81f3c31214ddbfb60b2d3f177e2e28cd (patch) | |
tree | f75afeab9f6a1ee15e6663aa42002623c56fc72f | |
parent | c6492d83892748d777926d956daa41196634b32b (diff) | |
download | quiche-ead1814d81f3c31214ddbfb60b2d3f177e2e28cd.tar.gz |
Build Quiche as a rust_ffi library for DnsResolver
Test: mma
Test: m com.android.resolv
Change-Id: I190b8346628db660cac10b146d50aaed47fb86d0
-rw-r--r-- | Android.bp | 28 | ||||
-rw-r--r-- | patches/Android.bp.patch | 89 |
2 files changed, 108 insertions, 9 deletions
@@ -1,8 +1,8 @@ -// This file is generated by cargo2android.py --run --device --dependencies. +// This file is generated by cargo2android.py --run --device --dependencies --patch=patches/Android.bp.patch. - -rust_library { - name: "libquiche", +rust_ffi { + name: "libquiche_ffi", + stem: "libquiche", host_supported: true, crate_name: "quiche", srcs: ["src/lib.rs"], @@ -11,29 +11,39 @@ rust_library { "boringssl", "default", ], - rustlibs: [ + + // Link all crates statically to create a self-contained .so library. + rlibs: [ "liblazy_static", "liblibc", "liblibm", "liblog_rust", "libring", ], + prefer_rlib: true, + shared_libs: [ "libcrypto", "libssl", ], -} + // For DnsResolver (Mainline module introduced in Q). + min_sdk_version: "29", + apex_available: [ + "//apex_available:platform", + "com.android.resolv", + ], +} // dependent_library ["feature_list"] -// cc-1.0.65 +// cc-1.0.66 // cfg-if-0.1.10 // cmake-0.1.45 // lazy_static-1.4.0 -// libc-0.2.80 "default,std" +// libc-0.2.81 "default,std" // libm-0.2.1 "default" // log-0.4.11 "std" // once_cell-1.5.2 "alloc,std" -// ring-0.16.17 "alloc,default,dev_urandom_fallback,once_cell" +// ring-0.16.19 "alloc,default,dev_urandom_fallback,once_cell" // spin-0.5.2 // untrusted-0.7.1 diff --git a/patches/Android.bp.patch b/patches/Android.bp.patch new file mode 100644 index 0000000..0fc5a78 --- /dev/null +++ b/patches/Android.bp.patch @@ -0,0 +1,89 @@ +--- Android.bp 2020-12-12 01:46:35.080262701 +0900 ++++ Android.bp.new 2020-12-12 01:44:35.649397815 +0900 +@@ -1,73 +1,37 @@ + // This file is generated by cargo2android.py --run --device --dependencies --patch=patches/Android.bp.patch. + +-rust_library_shared { +- name: "libquiche_shared", ++rust_ffi { ++ name: "libquiche_ffi", + stem: "libquiche", + host_supported: true, + crate_name: "quiche", + srcs: ["src/lib.rs"], + edition: "2018", + features: [ +- "boringssl-vendored", ++ "boringssl", + "default", + ], +- rustlibs: [ +- "liblazy_static", +- "liblibc", +- "liblibm", +- "liblog_rust", +- "libring", +- ], +- static_libs: [ +- "libcrypto", +- "libssl", +- ], +-} + +-rust_library { +- name: "libquiche", +- host_supported: true, +- crate_name: "quiche", +- srcs: ["src/lib.rs"], +- edition: "2018", +- features: [ +- "boringssl-vendored", +- "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, ++ ++ shared_libs: [ + "libcrypto", + "libssl", + ], +-} + +-rust_library_static { +- 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", +- ], +- static_libs: [ +- "libcrypto", +- "libssl", ++ // For DnsResolver (Mainline module introduced in Q). ++ min_sdk_version: "29", ++ apex_available: [ ++ "//apex_available:platform", ++ "com.android.resolv", + ], + } + |