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='*',