Remove boolean arguments from NewLibrary()
NewLibrary is going to be used for header only libraries. Instead
of adding more boolean arguments, replace the existing ones with
BuildOnlyStatic and BuildOnlyShared calls on the libraryDecorator
returned by NewLibrary.
Test: m -j, compare build.ninja
Change-Id: Id390b66cbf2a5f0932b32f40a5e18eb9e3852ee7
diff --git a/cc/library.go b/cc/library.go
index bdd8e79..5ba1a97 100644
--- a/cc/library.go
+++ b/cc/library.go
@@ -95,31 +95,35 @@
// Module factory for combined static + shared libraries, device by default but with possible host
// support
func libraryFactory() (blueprint.Module, []interface{}) {
- module, _ := NewLibrary(android.HostAndDeviceSupported, true, true)
+ module, _ := NewLibrary(android.HostAndDeviceSupported)
return module.Init()
}
// Module factory for static libraries
func libraryStaticFactory() (blueprint.Module, []interface{}) {
- module, _ := NewLibrary(android.HostAndDeviceSupported, false, true)
+ module, library := NewLibrary(android.HostAndDeviceSupported)
+ library.BuildOnlyStatic()
return module.Init()
}
// Module factory for shared libraries
func librarySharedFactory() (blueprint.Module, []interface{}) {
- module, _ := NewLibrary(android.HostAndDeviceSupported, true, false)
+ module, library := NewLibrary(android.HostAndDeviceSupported)
+ library.BuildOnlyShared()
return module.Init()
}
// Module factory for host static libraries
func libraryHostStaticFactory() (blueprint.Module, []interface{}) {
- module, _ := NewLibrary(android.HostSupported, false, true)
+ module, library := NewLibrary(android.HostSupported)
+ library.BuildOnlyStatic()
return module.Init()
}
// Module factory for host shared libraries
func libraryHostSharedFactory() (blueprint.Module, []interface{}) {
- module, _ := NewLibrary(android.HostSupported, true, false)
+ module, library := NewLibrary(android.HostSupported)
+ library.BuildOnlyShared()
return module.Init()
}
@@ -562,13 +566,21 @@
library.Properties.VariantIsStatic = static
}
-func NewLibrary(hod android.HostOrDeviceSupported, shared, static bool) (*Module, *libraryDecorator) {
+func (library *libraryDecorator) BuildOnlyStatic() {
+ library.Properties.BuildShared = false
+}
+
+func (library *libraryDecorator) BuildOnlyShared() {
+ library.Properties.BuildStatic = false
+}
+
+func NewLibrary(hod android.HostOrDeviceSupported) (*Module, *libraryDecorator) {
module := newModule(hod, android.MultilibBoth)
library := &libraryDecorator{
Properties: LibraryProperties{
- BuildShared: shared,
- BuildStatic: static,
+ BuildShared: true,
+ BuildStatic: true,
},
baseCompiler: NewBaseCompiler(),
baseLinker: NewBaseLinker(),