diff --git a/cc/library.go b/cc/library.go index bdd8e79f9..5ba1a977d 100644 --- a/cc/library.go +++ b/cc/library.go @@ -95,31 +95,35 @@ func init() { // 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 @@ func (library *libraryDecorator) setStatic(static bool) { 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(), diff --git a/cc/ndk_library.go b/cc/ndk_library.go index f733515d5..0e4273132 100644 --- a/cc/ndk_library.go +++ b/cc/ndk_library.go @@ -277,7 +277,8 @@ func (stub *stubDecorator) install(ctx ModuleContext, path android.Path) { } func newStubLibrary() (*Module, []interface{}) { - module, library := NewLibrary(android.DeviceSupported, true, false) + module, library := NewLibrary(android.DeviceSupported) + library.BuildOnlyShared() module.stl = nil module.sanitize = nil library.StripProperties.Strip.None = true diff --git a/cc/ndk_prebuilt.go b/cc/ndk_prebuilt.go index 46b383b98..63f892101 100644 --- a/cc/ndk_prebuilt.go +++ b/cc/ndk_prebuilt.go @@ -102,7 +102,8 @@ func (*ndkPrebuiltLibraryLinker) linkerDeps(ctx BaseModuleContext, deps Deps) De } func ndkPrebuiltLibraryFactory() (blueprint.Module, []interface{}) { - module, library := NewLibrary(android.DeviceSupported, true, false) + module, library := NewLibrary(android.DeviceSupported) + library.BuildOnlyShared() linker := &ndkPrebuiltLibraryLinker{ libraryDecorator: library, } @@ -132,7 +133,8 @@ type ndkPrebuiltStlLinker struct { } func ndkPrebuiltSharedStlFactory() (blueprint.Module, []interface{}) { - module, library := NewLibrary(android.DeviceSupported, true, false) + module, library := NewLibrary(android.DeviceSupported) + library.BuildOnlyShared() linker := &ndkPrebuiltStlLinker{ ndkPrebuiltLibraryLinker: ndkPrebuiltLibraryLinker{ libraryDecorator: library, @@ -146,7 +148,8 @@ func ndkPrebuiltSharedStlFactory() (blueprint.Module, []interface{}) { } func ndkPrebuiltStaticStlFactory() (blueprint.Module, []interface{}) { - module, library := NewLibrary(android.DeviceSupported, false, true) + module, library := NewLibrary(android.DeviceSupported) + library.BuildOnlyStatic() linker := &ndkPrebuiltStlLinker{ ndkPrebuiltLibraryLinker: ndkPrebuiltLibraryLinker{ libraryDecorator: library, diff --git a/cc/prebuilt.go b/cc/prebuilt.go index 0a5457029..abe03b9db 100644 --- a/cc/prebuilt.go +++ b/cc/prebuilt.go @@ -60,7 +60,7 @@ func (p *prebuiltLibraryLinker) link(ctx ModuleContext, } func prebuiltSharedLibraryFactory() (blueprint.Module, []interface{}) { - module, library := NewLibrary(android.HostAndDeviceSupported, true, true) + module, library := NewLibrary(android.HostAndDeviceSupported) module.compiler = nil prebuilt := &prebuiltLibraryLinker{ diff --git a/cc/test.go b/cc/test.go index 9cc30c91a..a2b827f5a 100644 --- a/cc/test.go +++ b/cc/test.go @@ -263,7 +263,7 @@ func (test *testLibrary) linkerFlags(ctx ModuleContext, flags Flags) Flags { } func NewTestLibrary(hod android.HostOrDeviceSupported) *Module { - module, library := NewLibrary(android.HostAndDeviceSupported, true, true) + module, library := NewLibrary(android.HostAndDeviceSupported) library.baseInstaller = NewTestInstaller() test := &testLibrary{ testDecorator: testDecorator{ diff --git a/cc/toolchain_library.go b/cc/toolchain_library.go index 521553e49..6ca9dc33f 100644 --- a/cc/toolchain_library.go +++ b/cc/toolchain_library.go @@ -39,7 +39,8 @@ func (*toolchainLibraryDecorator) linkerDeps(ctx BaseModuleContext, deps Deps) D } func toolchainLibraryFactory() (blueprint.Module, []interface{}) { - module, library := NewLibrary(android.HostAndDeviceSupported, false, true) + module, library := NewLibrary(android.HostAndDeviceSupported) + library.BuildOnlyStatic() toolchainLibrary := &toolchainLibraryDecorator{ libraryDecorator: library, }