Rename deps property to objs in cc_objects

The deps property is handled by blueprint, which doesn't give the
flexibilty of handling it within soong.  Switch to using objs instead.

Change-Id: Ib8273546578b31b186a3cf1566e80a5eb11943b7
diff --git a/cc/cc.go b/cc/cc.go
index f3400e7..9f39588 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -175,7 +175,7 @@
 	SharedLibs, LateSharedLibs                  []string
 	StaticLibs, LateStaticLibs, WholeStaticLibs []string
 
-	ObjFiles common.Paths
+	ObjFiles []string
 
 	Cflags, ReexportedCflags []string
 
@@ -380,6 +380,11 @@
 	Test_per_src *bool
 }
 
+type ObjectLinkerProperties struct {
+	// names of other cc_object modules to link into this module using partial linking
+	Objs []string `android:"arch_variant"`
+}
+
 // Properties used to compile all C or C++ modules
 type BaseProperties struct {
 	// compile module with clang instead of gcc
@@ -722,7 +727,8 @@
 	sharedLibs = append(sharedLibs, c.deps.LateSharedLibs...)
 	actx.AddVariationDependencies([]blueprint.Variation{{"link", "shared"}}, sharedLibs...)
 
-	actx.AddDependency(ctx.module(), c.deps.ObjFiles.Strings()...)
+	actx.AddDependency(ctx.module(), c.deps.ObjFiles...)
+
 	if c.deps.CrtBegin != "" {
 		actx.AddDependency(ctx.module(), c.deps.CrtBegin)
 	}
@@ -1542,6 +1548,7 @@
 //
 
 type objectLinker struct {
+	Properties ObjectLinkerProperties
 }
 
 func objectFactory() (blueprint.Module, []interface{}) {
@@ -1551,14 +1558,14 @@
 	return module.Init()
 }
 
-func (*objectLinker) props() []interface{} {
-	return nil
+func (object *objectLinker) props() []interface{} {
+	return []interface{}{&object.Properties}
 }
 
 func (*objectLinker) begin(ctx BaseModuleContext) {}
 
-func (*objectLinker) deps(ctx BaseModuleContext, deps Deps) Deps {
-	// object files can't have any dynamic dependencies
+func (object *objectLinker) deps(ctx BaseModuleContext, deps Deps) Deps {
+	deps.ObjFiles = append(deps.ObjFiles, object.Properties.Objs...)
 	return deps
 }