Merge changes I0885e493,Ic37c8db9 am: 4f6eebff0c

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1429848

Change-Id: I2d900a72ff809be4d08cf6272864d01a63293c85
This commit is contained in:
Treehugger Robot
2020-09-25 05:25:06 +00:00
committed by Automerger Merge Worker
12 changed files with 142 additions and 97 deletions

View File

@@ -304,15 +304,16 @@ func (a *AndroidMkEntries) fillInEntries(config Config, bpPath string, mod bluep
host := false host := false
switch amod.Os().Class { switch amod.Os().Class {
case Host: case Host:
// Make cannot identify LOCAL_MODULE_HOST_ARCH:= common. if amod.Target().HostCross {
if amod.Arch().ArchType != Common { // Make cannot identify LOCAL_MODULE_HOST_CROSS_ARCH:= common.
a.SetString("LOCAL_MODULE_HOST_ARCH", archStr) if amod.Arch().ArchType != Common {
} a.SetString("LOCAL_MODULE_HOST_CROSS_ARCH", archStr)
host = true }
case HostCross: } else {
// Make cannot identify LOCAL_MODULE_HOST_CROSS_ARCH:= common. // Make cannot identify LOCAL_MODULE_HOST_ARCH:= common.
if amod.Arch().ArchType != Common { if amod.Arch().ArchType != Common {
a.SetString("LOCAL_MODULE_HOST_CROSS_ARCH", archStr) a.SetString("LOCAL_MODULE_HOST_ARCH", archStr)
}
} }
host = true host = true
case Device: case Device:
@@ -359,9 +360,11 @@ func (a *AndroidMkEntries) fillInEntries(config Config, bpPath string, mod bluep
if amod.ArchSpecific() { if amod.ArchSpecific() {
switch amod.Os().Class { switch amod.Os().Class {
case Host: case Host:
prefix = "HOST_" if amod.Target().HostCross {
case HostCross: prefix = "HOST_CROSS_"
prefix = "HOST_CROSS_" } else {
prefix = "HOST_"
}
case Device: case Device:
prefix = "TARGET_" prefix = "TARGET_"
@@ -563,9 +566,11 @@ func translateAndroidModule(ctx SingletonContext, w io.Writer, mod blueprint.Mod
if amod.ArchSpecific() { if amod.ArchSpecific() {
switch amod.Os().Class { switch amod.Os().Class {
case Host: case Host:
prefix = "HOST_" if amod.Target().HostCross {
case HostCross: prefix = "HOST_CROSS_"
prefix = "HOST_CROSS_" } else {
prefix = "HOST_"
}
case Device: case Device:
prefix = "TARGET_" prefix = "TARGET_"

View File

@@ -590,7 +590,7 @@ var (
Linux = NewOsType("linux_glibc", Host, false) Linux = NewOsType("linux_glibc", Host, false)
Darwin = NewOsType("darwin", Host, false) Darwin = NewOsType("darwin", Host, false)
LinuxBionic = NewOsType("linux_bionic", Host, false) LinuxBionic = NewOsType("linux_bionic", Host, false)
Windows = NewOsType("windows", HostCross, true) Windows = NewOsType("windows", Host, true)
Android = NewOsType("android", Device, false) Android = NewOsType("android", Device, false)
Fuchsia = NewOsType("fuchsia", Device, false) Fuchsia = NewOsType("fuchsia", Device, false)
@@ -621,7 +621,6 @@ const (
Generic OsClass = iota Generic OsClass = iota
Device Device
Host Host
HostCross
) )
func (class OsClass) String() string { func (class OsClass) String() string {
@@ -632,8 +631,6 @@ func (class OsClass) String() string {
return "device" return "device"
case Host: case Host:
return "host" return "host"
case HostCross:
return "host cross"
default: default:
panic(fmt.Errorf("unknown class %d", class)) panic(fmt.Errorf("unknown class %d", class))
} }
@@ -693,6 +690,11 @@ type Target struct {
NativeBridge NativeBridgeSupport NativeBridge NativeBridgeSupport
NativeBridgeHostArchName string NativeBridgeHostArchName string
NativeBridgeRelativePath string NativeBridgeRelativePath string
// HostCross is true when the target cannot run natively on the current build host.
// For example, linux_glibc_x86 returns true on a regular x86/i686/Linux machines, but returns false
// on Mac (different OS), or on 64-bit only i686/Linux machines (unsupported arch).
HostCross bool
} }
func (target Target) String() string { func (target Target) String() string {
@@ -751,26 +753,15 @@ func osMutator(bpctx blueprint.BottomUpMutatorContext) {
return return
} }
osClasses := base.OsClassSupported()
var moduleOSList []OsType var moduleOSList []OsType
for _, os := range OsTypeList { for _, os := range OsTypeList {
supportedClass := false for _, t := range mctx.Config().Targets[os] {
for _, osClass := range osClasses { if base.supportsTarget(t, mctx.Config()) {
if os.Class == osClass { moduleOSList = append(moduleOSList, os)
supportedClass = true break
} }
} }
if !supportedClass {
continue
}
if len(mctx.Config().Targets[os]) == 0 {
continue
}
moduleOSList = append(moduleOSList, os)
} }
if len(moduleOSList) == 0 { if len(moduleOSList) == 0 {
@@ -925,7 +916,7 @@ func archMutator(bpctx blueprint.BottomUpMutatorContext) {
prefer32 := false prefer32 := false
if base.prefer32 != nil { if base.prefer32 != nil {
prefer32 = base.prefer32(mctx, base, os.Class) prefer32 = base.prefer32(mctx, base, os)
} }
multilib, extraMultilib := decodeMultilib(base, os.Class) multilib, extraMultilib := decodeMultilib(base, os.Class)
@@ -976,7 +967,7 @@ func decodeMultilib(base *ModuleBase, class OsClass) (multilib, extraMultilib st
switch class { switch class {
case Device: case Device:
multilib = String(base.commonProperties.Target.Android.Compile_multilib) multilib = String(base.commonProperties.Target.Android.Compile_multilib)
case Host, HostCross: case Host:
multilib = String(base.commonProperties.Target.Host.Compile_multilib) multilib = String(base.commonProperties.Target.Host.Compile_multilib)
} }
if multilib == "" { if multilib == "" {
@@ -1252,7 +1243,7 @@ func (m *ModuleBase) setOSProperties(ctx BottomUpMutatorContext) {
// key: value, // key: value,
// }, // },
// }, // },
if os.Class == Host || os.Class == HostCross { if os.Class == Host {
field := "Host" field := "Host"
prefix := "target.host" prefix := "target.host"
m.appendProperties(ctx, genProps, targetProp, field, prefix) m.appendProperties(ctx, genProps, targetProp, field, prefix)
@@ -1292,7 +1283,7 @@ func (m *ModuleBase) setOSProperties(ctx BottomUpMutatorContext) {
prefix := "target." + os.Name prefix := "target." + os.Name
m.appendProperties(ctx, genProps, targetProp, field, prefix) m.appendProperties(ctx, genProps, targetProp, field, prefix)
if (os.Class == Host || os.Class == HostCross) && os != Windows { if os.Class == Host && os != Windows {
field := "Not_windows" field := "Not_windows"
prefix := "target.not_windows" prefix := "target.not_windows"
m.appendProperties(ctx, genProps, targetProp, field, prefix) m.appendProperties(ctx, genProps, targetProp, field, prefix)
@@ -1520,6 +1511,36 @@ func decodeTargetProductVariables(config *config) (map[OsType][]Target, error) {
nativeBridgeRelativePathStr = arch.ArchType.String() nativeBridgeRelativePathStr = arch.ArchType.String()
} }
// A target is considered as HostCross if it's a host target which can't run natively on
// the currently configured build machine (either because the OS is different or because of
// the unsupported arch)
hostCross := false
if os.Class == Host {
var osSupported bool
if os == BuildOs {
osSupported = true
} else if BuildOs.Linux() && os.Linux() {
// LinuxBionic and Linux are compatible
osSupported = true
} else {
osSupported = false
}
var archSupported bool
if arch.ArchType == Common {
archSupported = true
} else if arch.ArchType.Name == *variables.HostArch {
archSupported = true
} else if variables.HostSecondaryArch != nil && arch.ArchType.Name == *variables.HostSecondaryArch {
archSupported = true
} else {
archSupported = false
}
if !osSupported || !archSupported {
hostCross = true
}
}
targets[os] = append(targets[os], targets[os] = append(targets[os],
Target{ Target{
Os: os, Os: os,
@@ -1527,6 +1548,7 @@ func decodeTargetProductVariables(config *config) (map[OsType][]Target, error) {
NativeBridge: nativeBridgeEnabled, NativeBridge: nativeBridgeEnabled,
NativeBridgeHostArchName: nativeBridgeHostArchNameStr, NativeBridgeHostArchName: nativeBridgeHostArchNameStr,
NativeBridgeRelativePath: nativeBridgeRelativePathStr, NativeBridgeRelativePath: nativeBridgeRelativePathStr,
HostCross: hostCross,
}) })
} }
@@ -1543,6 +1565,9 @@ func decodeTargetProductVariables(config *config) (map[OsType][]Target, error) {
if Bool(config.Host_bionic) { if Bool(config.Host_bionic) {
addTarget(LinuxBionic, "x86_64", nil, nil, nil, NativeBridgeDisabled, nil, nil) addTarget(LinuxBionic, "x86_64", nil, nil, nil, NativeBridgeDisabled, nil, nil)
} }
if Bool(config.Host_bionic_arm64) {
addTarget(LinuxBionic, "arm64", nil, nil, nil, NativeBridgeDisabled, nil, nil)
}
if String(variables.CrossHost) != "" { if String(variables.CrossHost) != "" {
crossHostOs := osByName(*variables.CrossHost) crossHostOs := osByName(*variables.CrossHost)
@@ -1783,13 +1808,22 @@ func getCommonTargets(targets []Target) []Target {
} }
func firstTarget(targets []Target, filters ...string) []Target { func firstTarget(targets []Target, filters ...string) []Target {
// find the first target from each OS
var ret []Target
hasHost := false
set := make(map[OsType]bool)
for _, filter := range filters { for _, filter := range filters {
buildTargets := filterMultilibTargets(targets, filter) buildTargets := filterMultilibTargets(targets, filter)
if len(buildTargets) > 0 { for _, t := range buildTargets {
return buildTargets[:1] if _, found := set[t.Os]; !found {
hasHost = hasHost || (t.Os.Class == Host)
set[t.Os] = true
ret = append(ret, t)
}
} }
} }
return nil return ret
} }
// Use the module multilib setting to select one or more targets from a target list // Use the module multilib setting to select one or more targets from a target list

View File

@@ -51,8 +51,9 @@ const productVariablesFileName = "soong.variables"
// A FileConfigurableOptions contains options which can be configured by the // A FileConfigurableOptions contains options which can be configured by the
// config file. These will be included in the config struct. // config file. These will be included in the config struct.
type FileConfigurableOptions struct { type FileConfigurableOptions struct {
Mega_device *bool `json:",omitempty"` Mega_device *bool `json:",omitempty"`
Host_bionic *bool `json:",omitempty"` Host_bionic *bool `json:",omitempty"`
Host_bionic_arm64 *bool `json:",omitempty"`
} }
func (f *FileConfigurableOptions) SetDefaultConfig() { func (f *FileConfigurableOptions) SetDefaultConfig() {
@@ -267,10 +268,10 @@ func TestArchConfigNativeBridge(buildDir string, env map[string]string, bp strin
config := testConfig.config config := testConfig.config
config.Targets[Android] = []Target{ config.Targets[Android] = []Target{
{Android, Arch{ArchType: X86_64, ArchVariant: "silvermont", Abi: []string{"arm64-v8a"}}, NativeBridgeDisabled, "", ""}, {Android, Arch{ArchType: X86_64, ArchVariant: "silvermont", Abi: []string{"arm64-v8a"}}, NativeBridgeDisabled, "", "", false},
{Android, Arch{ArchType: X86, ArchVariant: "silvermont", Abi: []string{"armeabi-v7a"}}, NativeBridgeDisabled, "", ""}, {Android, Arch{ArchType: X86, ArchVariant: "silvermont", Abi: []string{"armeabi-v7a"}}, NativeBridgeDisabled, "", "", false},
{Android, Arch{ArchType: Arm64, ArchVariant: "armv8-a", Abi: []string{"arm64-v8a"}}, NativeBridgeEnabled, "x86_64", "arm64"}, {Android, Arch{ArchType: Arm64, ArchVariant: "armv8-a", Abi: []string{"arm64-v8a"}}, NativeBridgeEnabled, "x86_64", "arm64", false},
{Android, Arch{ArchType: Arm, ArchVariant: "armv7-a-neon", Abi: []string{"armeabi-v7a"}}, NativeBridgeEnabled, "x86", "arm"}, {Android, Arch{ArchType: Arm, ArchVariant: "armv7-a-neon", Abi: []string{"armeabi-v7a"}}, NativeBridgeEnabled, "x86", "arm", false},
} }
return testConfig return testConfig
@@ -282,10 +283,10 @@ func TestArchConfigFuchsia(buildDir string, env map[string]string, bp string, fs
config.Targets = map[OsType][]Target{ config.Targets = map[OsType][]Target{
Fuchsia: []Target{ Fuchsia: []Target{
{Fuchsia, Arch{ArchType: Arm64, ArchVariant: "", Abi: []string{"arm64-v8a"}}, NativeBridgeDisabled, "", ""}, {Fuchsia, Arch{ArchType: Arm64, ArchVariant: "", Abi: []string{"arm64-v8a"}}, NativeBridgeDisabled, "", "", false},
}, },
BuildOs: []Target{ BuildOs: []Target{
{BuildOs, Arch{ArchType: X86_64}, NativeBridgeDisabled, "", ""}, {BuildOs, Arch{ArchType: X86_64}, NativeBridgeDisabled, "", "", false},
}, },
} }
@@ -299,12 +300,12 @@ func TestArchConfig(buildDir string, env map[string]string, bp string, fs map[st
config.Targets = map[OsType][]Target{ config.Targets = map[OsType][]Target{
Android: []Target{ Android: []Target{
{Android, Arch{ArchType: Arm64, ArchVariant: "armv8-a", Abi: []string{"arm64-v8a"}}, NativeBridgeDisabled, "", ""}, {Android, Arch{ArchType: Arm64, ArchVariant: "armv8-a", Abi: []string{"arm64-v8a"}}, NativeBridgeDisabled, "", "", false},
{Android, Arch{ArchType: Arm, ArchVariant: "armv7-a-neon", Abi: []string{"armeabi-v7a"}}, NativeBridgeDisabled, "", ""}, {Android, Arch{ArchType: Arm, ArchVariant: "armv7-a-neon", Abi: []string{"armeabi-v7a"}}, NativeBridgeDisabled, "", "", false},
}, },
BuildOs: []Target{ BuildOs: []Target{
{BuildOs, Arch{ArchType: X86_64}, NativeBridgeDisabled, "", ""}, {BuildOs, Arch{ArchType: X86_64}, NativeBridgeDisabled, "", "", false},
{BuildOs, Arch{ArchType: X86}, NativeBridgeDisabled, "", ""}, {BuildOs, Arch{ArchType: X86}, NativeBridgeDisabled, "", "", false},
}, },
} }

View File

@@ -948,7 +948,7 @@ type ModuleBase struct {
initRcPaths Paths initRcPaths Paths
vintfFragmentsPaths Paths vintfFragmentsPaths Paths
prefer32 func(ctx BaseModuleContext, base *ModuleBase, class OsClass) bool prefer32 func(ctx BaseModuleContext, base *ModuleBase, os OsType) bool
} }
func (m *ModuleBase) ComponentDepsMutator(BottomUpMutatorContext) {} func (m *ModuleBase) ComponentDepsMutator(BottomUpMutatorContext) {}
@@ -975,7 +975,7 @@ func (m *ModuleBase) VariablesForTests() map[string]string {
return m.variables return m.variables
} }
func (m *ModuleBase) Prefer32(prefer32 func(ctx BaseModuleContext, base *ModuleBase, class OsClass) bool) { func (m *ModuleBase) Prefer32(prefer32 func(ctx BaseModuleContext, base *ModuleBase, os OsType) bool) {
m.prefer32 = prefer32 m.prefer32 = prefer32
} }
@@ -1071,7 +1071,7 @@ func (m *ModuleBase) Os() OsType {
} }
func (m *ModuleBase) Host() bool { func (m *ModuleBase) Host() bool {
return m.Os().Class == Host || m.Os().Class == HostCross return m.Os().Class == Host
} }
func (m *ModuleBase) Device() bool { func (m *ModuleBase) Device() bool {
@@ -1091,28 +1091,28 @@ func (m *ModuleBase) IsCommonOSVariant() bool {
return m.commonProperties.CommonOSVariant return m.commonProperties.CommonOSVariant
} }
func (m *ModuleBase) OsClassSupported() []OsClass { func (m *ModuleBase) supportsTarget(target Target, config Config) bool {
switch m.commonProperties.HostOrDeviceSupported { switch m.commonProperties.HostOrDeviceSupported {
case HostSupported: case HostSupported:
return []OsClass{Host, HostCross} return target.Os.Class == Host
case HostSupportedNoCross: case HostSupportedNoCross:
return []OsClass{Host} return target.Os.Class == Host && !target.HostCross
case DeviceSupported: case DeviceSupported:
return []OsClass{Device} return target.Os.Class == Device
case HostAndDeviceSupported, HostAndDeviceDefault: case HostAndDeviceSupported, HostAndDeviceDefault:
var supported []OsClass supported := false
if Bool(m.hostAndDeviceProperties.Host_supported) || if Bool(m.hostAndDeviceProperties.Host_supported) ||
(m.commonProperties.HostOrDeviceSupported == HostAndDeviceDefault && (m.commonProperties.HostOrDeviceSupported == HostAndDeviceDefault &&
m.hostAndDeviceProperties.Host_supported == nil) { m.hostAndDeviceProperties.Host_supported == nil) {
supported = append(supported, Host, HostCross) supported = supported || target.Os.Class == Host
} }
if m.hostAndDeviceProperties.Device_supported == nil || if m.hostAndDeviceProperties.Device_supported == nil ||
*m.hostAndDeviceProperties.Device_supported { *m.hostAndDeviceProperties.Device_supported {
supported = append(supported, Device) supported = supported || target.Os.Class == Device
} }
return supported return supported
default: default:
return nil return false
} }
} }
@@ -2115,7 +2115,7 @@ func (b *baseModuleContext) Os() OsType {
} }
func (b *baseModuleContext) Host() bool { func (b *baseModuleContext) Host() bool {
return b.os.Class == Host || b.os.Class == HostCross return b.os.Class == Host
} }
func (b *baseModuleContext) Device() bool { func (b *baseModuleContext) Device() bool {
@@ -2575,30 +2575,36 @@ func (c *buildTargetSingleton) GenerateBuildActions(ctx SingletonContext) {
} }
// Create (host|host-cross|target)-<OS> phony rules to build a reduced checkbuild. // Create (host|host-cross|target)-<OS> phony rules to build a reduced checkbuild.
osDeps := map[OsType]Paths{} type osAndCross struct {
os OsType
hostCross bool
}
osDeps := map[osAndCross]Paths{}
ctx.VisitAllModules(func(module Module) { ctx.VisitAllModules(func(module Module) {
if module.Enabled() { if module.Enabled() {
os := module.Target().Os key := osAndCross{os: module.Target().Os, hostCross: module.Target().HostCross}
osDeps[os] = append(osDeps[os], module.base().checkbuildFiles...) osDeps[key] = append(osDeps[key], module.base().checkbuildFiles...)
} }
}) })
osClass := make(map[string]Paths) osClass := make(map[string]Paths)
for os, deps := range osDeps { for key, deps := range osDeps {
var className string var className string
switch os.Class { switch key.os.Class {
case Host: case Host:
className = "host" if key.hostCross {
case HostCross: className = "host-cross"
className = "host-cross" } else {
className = "host"
}
case Device: case Device:
className = "target" className = "target"
default: default:
continue continue
} }
name := className + "-" + os.Name name := className + "-" + key.os.Name
osClass[className] = append(osClass[className], PathForPhony(ctx, name)) osClass[className] = append(osClass[className], PathForPhony(ctx, name))
ctx.Phony(name, deps...) ctx.Phony(name, deps...)

View File

@@ -285,7 +285,7 @@ func TestPrebuilts(t *testing.T) {
t.Errorf("windows is assumed to be disabled by default") t.Errorf("windows is assumed to be disabled by default")
} }
config.config.Targets[Windows] = []Target{ config.config.Targets[Windows] = []Target{
{Windows, Arch{ArchType: X86_64}, NativeBridgeDisabled, "", ""}, {Windows, Arch{ArchType: X86_64}, NativeBridgeDisabled, "", "", true},
} }
ctx := NewTestArchContext() ctx := NewTestArchContext()

View File

@@ -157,13 +157,14 @@ func (a *apexBundle) androidMkForFiles(w io.Writer, apexBundleName, apexName, mo
host := false host := false
switch fi.module.Target().Os.Class { switch fi.module.Target().Os.Class {
case android.Host: case android.Host:
if fi.module.Target().Arch.ArchType != android.Common { if fi.module.Target().HostCross {
fmt.Fprintln(w, "LOCAL_MODULE_HOST_ARCH :=", archStr) if fi.module.Target().Arch.ArchType != android.Common {
} fmt.Fprintln(w, "LOCAL_MODULE_HOST_CROSS_ARCH :=", archStr)
host = true }
case android.HostCross: } else {
if fi.module.Target().Arch.ArchType != android.Common { if fi.module.Target().Arch.ArchType != android.Common {
fmt.Fprintln(w, "LOCAL_MODULE_HOST_CROSS_ARCH :=", archStr) fmt.Fprintln(w, "LOCAL_MODULE_HOST_ARCH :=", archStr)
}
} }
host = true host = true
case android.Device: case android.Device:

View File

@@ -950,9 +950,9 @@ func (c *Module) Init() android.Module {
c.AddProperties(feature.props()...) c.AddProperties(feature.props()...)
} }
c.Prefer32(func(ctx android.BaseModuleContext, base *android.ModuleBase, class android.OsClass) bool { c.Prefer32(func(ctx android.BaseModuleContext, base *android.ModuleBase, os android.OsType) bool {
// Windows builds always prefer 32-bit // Windows builds always prefer 32-bit
return class == android.HostCross return os == android.Windows
}) })
android.InitAndroidArchModule(c, c.hod, c.multilib) android.InitAndroidArchModule(c, c.hod, c.multilib)
android.InitApexModule(c) android.InitApexModule(c)

View File

@@ -678,7 +678,7 @@ func (a *AndroidApp) noticeBuildActions(ctx android.ModuleContext) {
seenModules[child] = true seenModules[child] = true
// Skip host modules. // Skip host modules.
if child.Target().Os.Class == android.Host || child.Target().Os.Class == android.HostCross { if child.Target().Os.Class == android.Host {
return false return false
} }

View File

@@ -79,7 +79,7 @@ func NewBinary(hod android.HostOrDeviceSupported) (*Module, *binaryDecorator) {
} }
func PythonBinaryHostFactory() android.Module { func PythonBinaryHostFactory() android.Module {
module, _ := NewBinary(android.HostSupportedNoCross) module, _ := NewBinary(android.HostSupported)
return module.Init() return module.Init()
} }

View File

@@ -26,7 +26,7 @@ func init() {
} }
func PythonLibraryHostFactory() android.Module { func PythonLibraryHostFactory() android.Module {
module := newModule(android.HostSupportedNoCross, android.MultilibFirst) module := newModule(android.HostSupported, android.MultilibFirst)
return module.Init() return module.Init()
} }

View File

@@ -68,14 +68,14 @@ func testSdkContext(bp string, fs map[string][]byte, extraOsTypes []android.OsTy
// Add windows as a default disable OS to test behavior when some OS variants // Add windows as a default disable OS to test behavior when some OS variants
// are disabled. // are disabled.
config.Targets[android.Windows] = []android.Target{ config.Targets[android.Windows] = []android.Target{
{android.Windows, android.Arch{ArchType: android.X86_64}, android.NativeBridgeDisabled, "", ""}, {android.Windows, android.Arch{ArchType: android.X86_64}, android.NativeBridgeDisabled, "", "", true},
} }
for _, extraOsType := range extraOsTypes { for _, extraOsType := range extraOsTypes {
switch extraOsType { switch extraOsType {
case android.LinuxBionic: case android.LinuxBionic:
config.Targets[android.LinuxBionic] = []android.Target{ config.Targets[android.LinuxBionic] = []android.Target{
{android.LinuxBionic, android.Arch{ArchType: android.X86_64}, android.NativeBridgeDisabled, "", ""}, {android.LinuxBionic, android.Arch{ArchType: android.X86_64}, android.NativeBridgeDisabled, "", "", false},
} }
} }
} }
@@ -89,7 +89,7 @@ func testSdkContext(bp string, fs map[string][]byte, extraOsTypes []android.OsTy
android.RegisterAndroidMkBuildComponents(ctx) android.RegisterAndroidMkBuildComponents(ctx)
android.SetInMakeForTests(config) android.SetInMakeForTests(config)
config.Targets[android.CommonOS] = []android.Target{ config.Targets[android.CommonOS] = []android.Target{
{android.CommonOS, android.Arch{ArchType: android.Common}, android.NativeBridgeDisabled, "", ""}, {android.CommonOS, android.Arch{ArchType: android.Common}, android.NativeBridgeDisabled, "", "", true},
} }
// from android package // from android package

View File

@@ -371,8 +371,7 @@ func (s *sdk) buildSnapshot(ctx android.ModuleContext, sdkVariants []*sdk) andro
osPropertySet := targetPropertySet.AddPropertySet(sdkVariant.Target().Os.Name) osPropertySet := targetPropertySet.AddPropertySet(sdkVariant.Target().Os.Name)
// Enable the variant explicitly when we've disabled it by default on host. // Enable the variant explicitly when we've disabled it by default on host.
if hasHostOsDependentMember && if hasHostOsDependentMember && osType.Class == android.Host {
(osType.Class == android.Host || osType.Class == android.HostCross) {
osPropertySet.AddProperty("enabled", true) osPropertySet.AddProperty("enabled", true)
} }
@@ -731,7 +730,7 @@ func (s *snapshotBuilder) AddPrebuiltModule(member android.SdkMember, moduleType
for _, variant := range member.Variants() { for _, variant := range member.Variants() {
osClass := variant.Target().Os.Class osClass := variant.Target().Os.Class
if osClass == android.Host || osClass == android.HostCross { if osClass == android.Host {
hostSupported = true hostSupported = true
} else if osClass == android.Device { } else if osClass == android.Device {
deviceSupported = true deviceSupported = true
@@ -1061,8 +1060,7 @@ func (osInfo *osTypeSpecificInfo) addToPropertySet(ctx *memberContext, bpModule
archPropertySet = targetPropertySet archPropertySet = targetPropertySet
// Enable the variant explicitly when we've disabled it by default on host. // Enable the variant explicitly when we've disabled it by default on host.
if ctx.memberType.IsHostOsDependent() && if ctx.memberType.IsHostOsDependent() && osType.Class == android.Host {
(osType.Class == android.Host || osType.Class == android.HostCross) {
osPropertySet.AddProperty("enabled", true) osPropertySet.AddProperty("enabled", true)
} }
@@ -1086,7 +1084,7 @@ func (osInfo *osTypeSpecificInfo) addToPropertySet(ctx *memberContext, bpModule
func (osInfo *osTypeSpecificInfo) isHostVariant() bool { func (osInfo *osTypeSpecificInfo) isHostVariant() bool {
osClass := osInfo.osType.Class osClass := osInfo.osType.Class
return osClass == android.Host || osClass == android.HostCross return osClass == android.Host
} }
var _ isHostVariant = (*osTypeSpecificInfo)(nil) var _ isHostVariant = (*osTypeSpecificInfo)(nil)
@@ -1323,7 +1321,7 @@ func (s *sdk) getPossibleOsTypes() []android.OsType {
} }
} }
if s.HostSupported() { if s.HostSupported() {
if osType.Class == android.Host || osType.Class == android.HostCross { if osType.Class == android.Host {
osTypes = append(osTypes, osType) osTypes = append(osTypes, osType)
} }
} }