Split cc_prebuilt_shared_library into static variants

Prebuilts must have every variant that their source module has, so
split all cc_prebuilt_shared_library modules into both static and
shared variants.

Test: m -j checkbuild
Change-Id: I3c32315227f779e832e041cfab604ff7402c7e13
diff --git a/cc/cc.go b/cc/cc.go
index 9062b00..fef72cc 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -845,8 +845,10 @@
 		}
 
 		if tag == reuseObjTag {
-			depPaths.Objs = depPaths.Objs.Append(cc.compiler.(libraryInterface).reuseObjs())
-			return
+			if l, ok := cc.compiler.(libraryInterface); ok {
+				depPaths.Objs = depPaths.Objs.Append(l.reuseObjs())
+				return
+			}
 		}
 
 		if t, ok := tag.(dependencyTag); ok && t.library {
diff --git a/cc/prebuilt.go b/cc/prebuilt.go
index 4328df8..0a54570 100644
--- a/cc/prebuilt.go
+++ b/cc/prebuilt.go
@@ -60,13 +60,14 @@
 }
 
 func prebuiltSharedLibraryFactory() (blueprint.Module, []interface{}) {
-	module, library := NewLibrary(android.HostAndDeviceSupported, true, false)
+	module, library := NewLibrary(android.HostAndDeviceSupported, true, true)
 	module.compiler = nil
 
 	prebuilt := &prebuiltLibraryLinker{
 		libraryDecorator: library,
 	}
 	module.linker = prebuilt
+	module.installer = prebuilt
 
 	return module.Init()
 }