Revert "Skip creating variants for disabled OSes"

This reverts commit d976af0cb47b78a7b4dbc60452d1eff4f0296df6.

Reason for revert: broke windows SDK build: missing bin/dexdump.exe

Bug: 173663545
Change-Id: Ibb541507650beabd2d94885dd8d66f724a358ca7
diff --git a/android/arch.go b/android/arch.go
index a5d416c..afb9c7f 100644
--- a/android/arch.go
+++ b/android/arch.go
@@ -757,7 +757,7 @@
 
 	for _, os := range OsTypeList {
 		for _, t := range mctx.Config().Targets[os] {
-			if base.supportsTarget(t) && base.osEnabled(os) {
+			if base.supportsTarget(t) {
 				moduleOSList = append(moduleOSList, os)
 				break
 			}
@@ -1183,16 +1183,6 @@
 		}
 		base.archProperties = append(base.archProperties, archProperties)
 		m.AddProperties(archProperties...)
-
-		// Special case the enabled property so the osMutator can skip creating variants that
-		// are disabled.
-		if properties == &base.enabledProperties {
-			if len(archProperties) != 1 {
-				panic(fmt.Errorf("expected a single arch-specific enabledProperties type, found %d",
-					len(archProperties)))
-			}
-			base.archEnabledProperties = archProperties[0].(*archPropRoot)
-		}
 	}
 
 	base.customizableProperties = m.GetProperties()
diff --git a/android/defaults.go b/android/defaults.go
index be5359f..eb013d7 100644
--- a/android/defaults.go
+++ b/android/defaults.go
@@ -174,22 +174,20 @@
 
 func InitDefaultsModule(module DefaultsModule) {
 	commonProperties := &commonProperties{}
-	enabledProperties := &enabledProperties{}
 
 	module.AddProperties(
 		&hostAndDeviceProperties{},
-		enabledProperties,
 		commonProperties,
 		&ApexProperties{},
 		&distProperties{})
 
-	base := module.base()
 	initAndroidModuleBase(module)
 	initProductVariableModule(module)
 	InitArchModule(module)
 	InitDefaultableModule(module)
 
 	// Add properties that will not have defaults applied to them.
+	base := module.base()
 	defaultsVisibility := &DefaultsVisibilityProperties{}
 	module.AddProperties(&base.nameProperties, defaultsVisibility)
 
diff --git a/android/module.go b/android/module.go
index fa2f108..9bcb22f 100644
--- a/android/module.go
+++ b/android/module.go
@@ -19,7 +19,6 @@
 	"os"
 	"path"
 	"path/filepath"
-	"reflect"
 	"regexp"
 	"strings"
 	"text/scanner"
@@ -513,7 +512,7 @@
 	Name *string
 }
 
-type enabledProperties struct {
+type commonProperties struct {
 	// emit build rules for this module
 	//
 	// Disabling a module should only be done for those modules that cannot be built
@@ -522,9 +521,7 @@
 	// disabled as that will prevent them from being built by the checkbuild target
 	// and so prevent early detection of changes that have broken those modules.
 	Enabled *bool `android:"arch_variant"`
-}
 
-type commonProperties struct {
 	// Controls the visibility of this module to other modules. Allowable values are one or more of
 	// these formats:
 	//
@@ -833,7 +830,6 @@
 
 	m.AddProperties(
 		&base.nameProperties,
-		&base.enabledProperties,
 		&base.commonProperties,
 		&base.distProperties)
 
@@ -932,11 +928,6 @@
 	archProperties          [][]interface{}
 	customizableProperties  []interface{}
 
-	// The enabled property is special-cased so that the osMutator can skip creating variants
-	// that are disabled.
-	enabledProperties     enabledProperties
-	archEnabledProperties *archPropRoot
-
 	// Information about all the properties on the module that contains visibility rules that need
 	// checking.
 	visibilityPropertyInfo []visibilityProperty
@@ -1127,33 +1118,6 @@
 	}
 }
 
-// osEnabled returns true if the given OS is enabled for the current module.
-func (m *ModuleBase) osEnabled(os OsType) bool {
-	targetStruct := reflect.ValueOf(m.archEnabledProperties.Target)
-
-	if targetStruct.Kind() != reflect.Ptr || targetStruct.Type().Elem().Kind() != reflect.Struct {
-		panic(fmt.Errorf("expected a pointer to a struct, found %s", targetStruct.Type()))
-	}
-
-	if targetStruct.IsNil() {
-		return !os.DefaultDisabled
-	}
-
-	osStruct := targetStruct.Elem().FieldByName(os.Field)
-
-	if targetStruct.Kind() != reflect.Ptr || targetStruct.Type().Elem().Kind() != reflect.Struct {
-		panic(fmt.Errorf("expected a pointer to a struct, found %s", targetStruct.Type()))
-	}
-
-	if osStruct.IsNil() {
-		return !os.DefaultDisabled
-	}
-
-	enabledField := osStruct.Elem().FieldByName("Enabled")
-
-	return proptools.BoolDefault(enabledField.Interface().(*bool), !os.DefaultDisabled)
-}
-
 // DeviceSupported returns true if the current module is supported and enabled for device targets,
 // i.e. the factory method set the HostOrDeviceSupported value to include device support and
 // the device support is enabled by default or enabled by the device_supported property.
@@ -1253,7 +1217,10 @@
 	if m.commonProperties.ForcedDisabled {
 		return false
 	}
-	return proptools.BoolDefault(m.enabledProperties.Enabled, !m.Os().DefaultDisabled)
+	if m.commonProperties.Enabled == nil {
+		return !m.Os().DefaultDisabled
+	}
+	return *m.commonProperties.Enabled
 }
 
 func (m *ModuleBase) Disable() {
diff --git a/android/path_properties.go b/android/path_properties.go
index ee84c67..6b1cdb3 100644
--- a/android/path_properties.go
+++ b/android/path_properties.go
@@ -29,7 +29,7 @@
 // property that is tagged with android:"path".
 func pathDepsMutator(ctx BottomUpMutatorContext) {
 	m := ctx.Module().(Module)
-	if m == nil || !m.Enabled() {
+	if m == nil {
 		return
 	}
 
diff --git a/genrule/genrule.go b/genrule/genrule.go
index 978a8ff..53b9dbe 100644
--- a/genrule/genrule.go
+++ b/genrule/genrule.go
@@ -184,9 +184,6 @@
 
 func toolDepsMutator(ctx android.BottomUpMutatorContext) {
 	if g, ok := ctx.Module().(*Module); ok {
-		if !g.Enabled() {
-			return
-		}
 		for _, tool := range g.properties.Tools {
 			tag := hostToolDependencyTag{label: tool}
 			if m := android.SrcIsModule(tool); m != "" {