Refactor module registration

Refactor module registration so that it doesn't need to separately
track properties.

Test: builds, no change to out/soong/build.ninja
Change-Id: I152f019d227d8fa9872742c03cf2381c674d675b
diff --git a/build/art.go b/build/art.go
index db626fd..1b9c646 100644
--- a/build/art.go
+++ b/build/art.go
@@ -19,8 +19,6 @@
 	"android/soong/cc"
 	"fmt"
 	"sync"
-
-	"github.com/google/blueprint"
 )
 
 var supportedArches = []string{"arm", "arm64", "mips", "mips64", "x86", "x86_64"}
@@ -266,67 +264,67 @@
 	android.RegisterModuleType("art_debug_defaults", artDebugDefaultsFactory)
 }
 
-func artGlobalDefaultsFactory() (blueprint.Module, []interface{}) {
-	module, props := artDefaultsFactory()
+func artGlobalDefaultsFactory() android.Module {
+	module := artDefaultsFactory()
 	android.AddLoadHook(module, globalDefaults)
 
-	return module, props
+	return module
 }
 
-func artDebugDefaultsFactory() (blueprint.Module, []interface{}) {
-	module, props := artDefaultsFactory()
+func artDebugDefaultsFactory() android.Module {
+	module := artDefaultsFactory()
 	android.AddLoadHook(module, debugDefaults)
 
-	return module, props
+	return module
 }
 
-func artDefaultsFactory() (blueprint.Module, []interface{}) {
+func artDefaultsFactory() android.Module {
 	c := &codegenProperties{}
-	module, props := cc.DefaultsFactory(c)
+	module := cc.DefaultsFactory(c)
 	android.AddLoadHook(module, func(ctx android.LoadHookContext) { codegen(ctx, c, true) })
 
-	return module, props
+	return module
 }
 
-func artLibrary() (blueprint.Module, []interface{}) {
+func artLibrary() android.Module {
 	library, _ := cc.NewLibrary(android.HostAndDeviceSupported)
-	module, props := library.Init()
+	module := library.Init()
 
-	props = installCodegenCustomizer(module, props, true)
+	installCodegenCustomizer(module, true)
 
-	return module, props
+	return module
 }
 
-func artBinary() (blueprint.Module, []interface{}) {
+func artBinary() android.Module {
 	binary, _ := cc.NewBinary(android.HostAndDeviceSupported)
-	module, props := binary.Init()
+	module := binary.Init()
 
 	android.AddLoadHook(module, customLinker)
 	android.AddLoadHook(module, prefer32Bit)
-	return module, props
+	return module
 }
 
-func artTest() (blueprint.Module, []interface{}) {
+func artTest() android.Module {
 	test := cc.NewTest(android.HostAndDeviceSupported)
-	module, props := test.Init()
+	module := test.Init()
 
-	props = installCodegenCustomizer(module, props, false)
+	installCodegenCustomizer(module, false)
 
 	android.AddLoadHook(module, customLinker)
 	android.AddLoadHook(module, prefer32Bit)
 	android.AddInstallHook(module, testInstall)
-	return module, props
+	return module
 }
 
-func artTestLibrary() (blueprint.Module, []interface{}) {
+func artTestLibrary() android.Module {
 	test := cc.NewTestLibrary(android.HostAndDeviceSupported)
-	module, props := test.Init()
+	module := test.Init()
 
-	props = installCodegenCustomizer(module, props, false)
+	installCodegenCustomizer(module, false)
 
 	android.AddLoadHook(module, prefer32Bit)
 	android.AddInstallHook(module, testInstall)
-	return module, props
+	return module
 }
 
 func envDefault(ctx android.BaseContext, key string, defaultValue string) string {
diff --git a/build/codegen.go b/build/codegen.go
index ba6f214..8526bf1 100644
--- a/build/codegen.go
+++ b/build/codegen.go
@@ -22,8 +22,6 @@
 	"android/soong/android"
 	"sort"
 	"strings"
-
-	"github.com/google/blueprint"
 )
 
 func codegen(ctx android.LoadHookContext, c *codegenProperties, library bool) {
@@ -159,10 +157,8 @@
 	return ret
 }
 
-func installCodegenCustomizer(module blueprint.Module, props []interface{}, library bool) []interface{} {
+func installCodegenCustomizer(module android.Module, library bool) {
 	c := &codegenProperties{}
 	android.AddLoadHook(module, func(ctx android.LoadHookContext) { codegen(ctx, c, library) })
-	props = append(props, c)
-
-	return props
+	module.AddProperties(c)
 }