Encode default enabled state in OsType
Currently our only default-disabled Os is Windows since it's HostCross,
but we'll be adding non-default Host and Device types in the future.
Bug: 31559095
Test: out/soong/build.ninja is identical
Change-Id: I2bc3a3cc76f2c95ea040bc34ba6706fcc178c68d
diff --git a/android/arch.go b/android/arch.go
index 6c99684..2ef6e24 100644
--- a/android/arch.go
+++ b/android/arch.go
@@ -192,10 +192,10 @@
osTypeList []OsType
NoOsType OsType
- Linux = NewOsType("linux", Host)
- Darwin = NewOsType("darwin", Host)
- Windows = NewOsType("windows", HostCross)
- Android = NewOsType("android", Device)
+ Linux = NewOsType("linux", Host, false)
+ Darwin = NewOsType("darwin", Host, false)
+ Windows = NewOsType("windows", HostCross, true)
+ Android = NewOsType("android", Device, false)
osArchTypeMap = map[OsType][]ArchType{
Linux: []ArchType{X86, X86_64},
@@ -208,6 +208,8 @@
type OsType struct {
Name, Field string
Class OsClass
+
+ DefaultDisabled bool
}
type OsClass int
@@ -222,11 +224,13 @@
return os.Name
}
-func NewOsType(name string, class OsClass) OsType {
+func NewOsType(name string, class OsClass, defDisabled bool) OsType {
os := OsType{
Name: name,
Field: strings.Title(name),
Class: class,
+
+ DefaultDisabled: defDisabled,
}
osTypeList = append(osTypeList, os)
return os
diff --git a/android/module.go b/android/module.go
index 0dae3a5..2b6f8ba 100644
--- a/android/module.go
+++ b/android/module.go
@@ -355,7 +355,7 @@
func (a *ModuleBase) Enabled() bool {
if a.commonProperties.Enabled == nil {
- return a.Os().Class != HostCross
+ return !a.Os().DefaultDisabled
}
return *a.commonProperties.Enabled
}