Let cargo2android ensure some libraries are whole_static_libs.
Test: Use on a crate.
Change-Id: I1d6a3bdb47141d5d20af3c118fd7a05bef223a48
diff --git a/scripts/cargo2android.py b/scripts/cargo2android.py
index 4f828e2..65d69a5 100755
--- a/scripts/cargo2android.py
+++ b/scripts/cargo2android.py
@@ -681,8 +681,11 @@
self.dump_android_flags()
if self.externs:
self.dump_android_externs()
- static_libs = [lib for lib in self.static_libs if not lib in self.runner.args.lib_blocklist]
+ all_static_libs = [lib for lib in self.static_libs if not lib in self.runner.args.lib_blocklist]
+ static_libs = [lib for lib in all_static_libs if not lib in self.runner.args.whole_static_libs]
self.dump_android_property_list('static_libs', '"lib%s"', static_libs)
+ whole_static_libs = [lib for lib in all_static_libs if lib in self.runner.args.whole_static_libs]
+ self.dump_android_property_list('whole_static_libs', '"lib%s"', whole_static_libs)
shared_libs = [lib for lib in self.shared_libs if not lib in self.runner.args.lib_blocklist]
self.dump_android_property_list('shared_libs', '"lib%s"', shared_libs)
@@ -1606,15 +1609,20 @@
default=False,
help='Make the main library an rlib.')
parser.add_argument(
+ '--whole-static-libs',
+ nargs='*',
+ default=[],
+ help='Make the given libraries (without lib prefixes) whole_static_libs.')
+ parser.add_argument(
'--dependency-blocklist',
nargs='*',
default=[],
- help='Do not emit the given dependencies.')
+ help='Do not emit the given dependencies (without lib prefixes).')
parser.add_argument(
'--lib-blocklist',
nargs='*',
default=[],
- help='Do not emit the given C libraries as dependencies.')
+ help='Do not emit the given C libraries as dependencies (without lib prefixes).')
parser.add_argument(
'--test-blocklist',
nargs='*',