Support 'cc_library' in androidbp

Change-Id: I0a0ee48aac786a422e68e14ba14fc6186296214d
diff --git a/androidbp/cmd/androidbp.go b/androidbp/cmd/androidbp.go
index 2dba6c1..4174fe5 100644
--- a/androidbp/cmd/androidbp.go
+++ b/androidbp/cmd/androidbp.go
@@ -241,22 +241,54 @@
 	return
 }
 
-func (w *androidMkWriter) handleModule(module *bpparser.Module) {
-	moduleRule := fmt.Sprintf(module.Type.Name)
-	if translation, ok := moduleTypeToRule[module.Type.Name]; ok {
-		moduleRule = translation
+func (w *androidMkWriter) mutateModule(module *bpparser.Module) (modules []*bpparser.Module) {
+	if module.Type.Name == "cc_library" {
+		modules = append(modules, &bpparser.Module{
+			Type: bpparser.Ident{
+				Name: "cc_library_shared",
+				Pos:  module.Type.Pos,
+			},
+			Properties: module.Properties,
+			LbracePos:  module.LbracePos,
+			RbracePos:  module.RbracePos,
+		})
+
+		modules = append(modules, &bpparser.Module{
+			Type: bpparser.Ident{
+				Name: "cc_library_static",
+				Pos:  module.Type.Pos,
+			},
+			Properties: module.Properties,
+			LbracePos:  module.LbracePos,
+			RbracePos:  module.RbracePos,
+		})
+	} else {
+		modules = []*bpparser.Module{module}
 	}
 
-	isHostRule := strings.Contains(moduleRule, "HOST")
-	hostSupported := w.parsePropsAndWriteModule(moduleRule, isHostRule, module)
+	return
+}
 
-	if !isHostRule && hostSupported {
-		hostModuleRule := "NO CORRESPONDING HOST RULE" + moduleRule
-		if trans, ok := targetToHostModuleRule[moduleRule]; ok {
-			hostModuleRule = trans
+func (w *androidMkWriter) handleModule(inputModule *bpparser.Module) {
+	modules := w.mutateModule(inputModule)
+
+	for _, module := range modules {
+		moduleRule := fmt.Sprintf(module.Type.Name)
+		if translation, ok := moduleTypeToRule[module.Type.Name]; ok {
+			moduleRule = translation
 		}
 
-		w.parsePropsAndWriteModule(hostModuleRule, true, module)
+		isHostRule := strings.Contains(moduleRule, "HOST")
+		hostSupported := w.parsePropsAndWriteModule(moduleRule, isHostRule, module)
+
+		if !isHostRule && hostSupported {
+			hostModuleRule := "NO CORRESPONDING HOST RULE" + moduleRule
+			if trans, ok := targetToHostModuleRule[moduleRule]; ok {
+				hostModuleRule = trans
+			}
+
+			w.parsePropsAndWriteModule(hostModuleRule, true, module)
+		}
 	}
 }