Merge "Allow static/shared modules to be disabled per-arch"

This commit is contained in:
Dan Willemsen 2016-07-08 03:38:53 +00:00 committed by Gerrit Code Review
commit 6871062821
2 changed files with 23 additions and 0 deletions

View File

@ -23,6 +23,7 @@ import (
"android/soong/glob"
"github.com/google/blueprint"
"github.com/google/blueprint/proptools"
)
var (
@ -89,6 +90,7 @@ type Module interface {
GenerateAndroidBuildActions(ModuleContext)
base() *ModuleBase
Disable()
Enabled() bool
Target() Target
InstallInData() bool
@ -292,6 +294,10 @@ func (a *ModuleBase) DeviceSupported() bool {
a.hostAndDeviceProperties.Device_supported
}
func (a *ModuleBase) Disable() {
a.commonProperties.Enabled = proptools.BoolPtr(false)
}
func (a *ModuleBase) Enabled() bool {
if a.commonProperties.Enabled == nil {
return a.Os().Class != HostCross

View File

@ -360,11 +360,13 @@ type FlagExporterProperties struct {
type LibraryLinkerProperties struct {
Static struct {
Enabled *bool `android:"arch_variant"`
Whole_static_libs []string `android:"arch_variant"`
Static_libs []string `android:"arch_variant"`
Shared_libs []string `android:"arch_variant"`
} `android:"arch_variant"`
Shared struct {
Enabled *bool `android:"arch_variant"`
Whole_static_libs []string `android:"arch_variant"`
Static_libs []string `android:"arch_variant"`
Shared_libs []string `android:"arch_variant"`
@ -1548,6 +1550,21 @@ type libraryLinker struct {
var _ linker = (*libraryLinker)(nil)
func (library *libraryLinker) begin(ctx BaseModuleContext) {
library.baseLinker.begin(ctx)
if library.static() {
if library.Properties.Static.Enabled != nil &&
!*library.Properties.Static.Enabled {
ctx.module().Disable()
}
} else {
if library.Properties.Shared.Enabled != nil &&
!*library.Properties.Shared.Enabled {
ctx.module().Disable()
}
}
}
func (library *libraryLinker) props() []interface{} {
props := library.baseLinker.props()
return append(props,