Refactor cc modules to use decorators instead of inheritance
For example , instead of trying to have libraryLinker inherit from
baseLinker and libraryCompiler inherit from baseCompiler, create a
single decorator object that wraps both baseLinker and baseCompiler.
Test: Builds, no unexpected changes to build.ninja
Change-Id: I2468adaea8466c203a240259ba5694b8b1df7a52
diff --git a/cc/object.go b/cc/object.go
index fbb7b7f..c9f0a06 100644
--- a/cc/object.go
+++ b/cc/object.go
@@ -32,13 +32,16 @@
}
type objectLinker struct {
+ *baseLinker
Properties ObjectLinkerProperties
}
func objectFactory() (blueprint.Module, []interface{}) {
module := newBaseModule(android.DeviceSupported, android.MultilibBoth)
- module.compiler = &baseCompiler{}
- module.linker = &objectLinker{}
+ module.linker = &objectLinker{
+ baseLinker: NewBaseLinker(),
+ }
+ module.compiler = NewBaseCompiler()
return module.Init()
}
@@ -84,7 +87,3 @@
ctx.CheckbuildFile(outputFile)
return outputFile
}
-
-func (*objectLinker) installable() bool {
- return false
-}