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
}