From 5e71e68a82bf00b8d1ddb3c6d50a0aa38458530c Mon Sep 17 00:00:00 2001 From: Paul Duffin Date: Wed, 23 Nov 2022 18:09:54 +0000 Subject: [PATCH 1/2] Replace usages of SdkAware in sdk module with Module Previously, the sdk snapshot code used SdkAware instead of Module to ensure that all its members had implemented SdkAware. However, it never used any of the methods provided by SdkAware, or if it did it no longer does. So, this change replaces usages of SdkAware with Module in preparation for deleting it completely. Bug: 260237150 Test: m nothing Change-Id: Ia89e02394f27b2da776f0cf0f0bc86835a03433a --- android/sdk.go | 4 ++-- sdk/update.go | 26 +++++++++++++------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/android/sdk.go b/android/sdk.go index b94217dfe..063091e86 100644 --- a/android/sdk.go +++ b/android/sdk.go @@ -541,7 +541,7 @@ type SdkMember interface { Name() string // Variants returns all the variants of this module depended upon by the SDK. - Variants() []SdkAware + Variants() []Module } // SdkMemberDependencyTag is the interface that a tag must implement in order to allow the @@ -673,7 +673,7 @@ type SdkMemberType interface { // The sdk module code generates the snapshot as follows: // // * A properties struct of type SdkMemberProperties is created for each variant and - // populated with information from the variant by calling PopulateFromVariant(SdkAware) + // populated with information from the variant by calling PopulateFromVariant(Module) // on the struct. // // * An additional properties struct is created into which the common properties will be diff --git a/sdk/update.go b/sdk/update.go index baa203302..f50439c3e 100644 --- a/sdk/update.go +++ b/sdk/update.go @@ -171,9 +171,9 @@ func (s *sdk) collectMembers(ctx android.ModuleContext) { exportedComponentsInfo = ctx.OtherModuleProvider(child, android.ExportedComponentsInfoProvider).(android.ExportedComponentsInfo) } - var container android.SdkAware + var container android.Module if parent != ctx.Module() { - container = parent.(android.SdkAware) + container = parent.(android.Module) } minApiLevel := android.MinApiLevelForSdkSnapshot(ctx, child) @@ -182,7 +182,7 @@ func (s *sdk) collectMembers(ctx android.ModuleContext) { s.memberVariantDeps = append(s.memberVariantDeps, sdkMemberVariantDep{ sdkVariant: s, memberType: memberType, - variant: child.(android.SdkAware), + variant: child.(android.Module), minApiLevel: minApiLevel, container: container, export: export, @@ -269,7 +269,7 @@ func isMemberTypeSupportedByTargetBuildRelease(memberType android.SdkMemberType, return supportedByTargetBuildRelease } -func appendUniqueVariants(variants []android.SdkAware, newVariant android.SdkAware) []android.SdkAware { +func appendUniqueVariants(variants []android.Module, newVariant android.Module) []android.Module { for _, v := range variants { if v == newVariant { return variants @@ -1246,12 +1246,12 @@ type sdkMemberVariantDep struct { memberType android.SdkMemberType // The variant that is added to the sdk. - variant android.SdkAware + variant android.Module // The optional container of this member, i.e. the module that is depended upon by the sdk // (possibly transitively) and whose dependency on this module is why it was added to the sdk. // Is nil if this a direct dependency of the sdk. - container android.SdkAware + container android.Module // True if the member should be exported, i.e. accessible, from outside the sdk. export bool @@ -1270,14 +1270,14 @@ var _ android.SdkMember = (*sdkMember)(nil) type sdkMember struct { memberType android.SdkMemberType name string - variants []android.SdkAware + variants []android.Module } func (m *sdkMember) Name() string { return m.name } -func (m *sdkMember) Variants() []android.SdkAware { +func (m *sdkMember) Variants() []android.Module { return m.variants } @@ -1362,24 +1362,24 @@ func getVariantCoordinate(ctx *memberContext, variant android.Module) variantCoo // by apex variant, where one is the default/platform variant and one is the APEX variant. In that // case it picks the APEX variant. It picks the APEX variant because that is the behavior that would // be expected -func selectApexVariantsWhereAvailable(ctx *memberContext, variants []android.SdkAware) []android.SdkAware { +func selectApexVariantsWhereAvailable(ctx *memberContext, variants []android.Module) []android.Module { moduleCtx := ctx.sdkMemberContext // Group the variants by coordinates. - variantsByCoord := make(map[variantCoordinate][]android.SdkAware) + variantsByCoord := make(map[variantCoordinate][]android.Module) for _, variant := range variants { coord := getVariantCoordinate(ctx, variant) variantsByCoord[coord] = append(variantsByCoord[coord], variant) } - toDiscard := make(map[android.SdkAware]struct{}) + toDiscard := make(map[android.Module]struct{}) for coord, list := range variantsByCoord { count := len(list) if count == 1 { continue } - variantsByApex := make(map[string]android.SdkAware) + variantsByApex := make(map[string]android.Module) conflictDetected := false for _, variant := range list { apexInfo := moduleCtx.OtherModuleProvider(variant, android.ApexInfoProvider).(android.ApexInfo) @@ -1421,7 +1421,7 @@ func selectApexVariantsWhereAvailable(ctx *memberContext, variants []android.Sdk // If there are any variants to discard then remove them from the list of variants, while // preserving the order. if len(toDiscard) > 0 { - filtered := []android.SdkAware{} + filtered := []android.Module{} for _, variant := range variants { if _, ok := toDiscard[variant]; !ok { filtered = append(filtered, variant) From d796f6f6dcb1c34bb7ed5c699588eb3938a3ed37 Mon Sep 17 00:00:00 2001 From: Paul Duffin Date: Wed, 23 Nov 2022 23:06:05 +0000 Subject: [PATCH 2/2] Stop module types being SdkAware Removes all usages of SdkBase and InitSdkAwareModule. Bug: 260237150 Test: m nothing Change-Id: I07db8afc805eadbeb5b23f2e1d2f51567eecfab0 --- android/license.go | 2 -- apex/apex.go | 2 -- cc/cc.go | 2 -- cc/prebuilt.go | 3 --- java/base.go | 1 - java/bootclasspath_fragment.go | 3 --- java/droidstubs.go | 4 ---- java/java.go | 6 ------ java/platform_compat_config.go | 7 +------ java/sdk_library.go | 5 +---- java/system_modules.go | 3 --- java/systemserver_classpath_fragment.go | 3 --- 12 files changed, 2 insertions(+), 39 deletions(-) diff --git a/android/license.go b/android/license.go index ab8431a89..a09422b98 100644 --- a/android/license.go +++ b/android/license.go @@ -58,7 +58,6 @@ var _ Bazelable = &licenseModule{} type licenseModule struct { ModuleBase DefaultableModuleBase - SdkBase BazelModuleBase properties licenseProperties @@ -137,7 +136,6 @@ func LicenseFactory() Module { // The visibility property needs to be checked and parsed by the visibility module. setPrimaryVisibilityProperty(module, "visibility", &module.properties.Visibility) - InitSdkAwareModule(module) initAndroidModuleBase(module) InitDefaultableModule(module) InitBazelModule(module) diff --git a/apex/apex.go b/apex/apex.go index 01e4f1222..488bee047 100644 --- a/apex/apex.go +++ b/apex/apex.go @@ -396,7 +396,6 @@ type apexBundle struct { android.ModuleBase android.DefaultableModuleBase android.OverridableModuleBase - android.SdkBase android.BazelModuleBase multitree.ExportableModuleBase @@ -2593,7 +2592,6 @@ func newApexBundle() *apexBundle { android.InitAndroidMultiTargetsArchModule(module, android.HostAndDeviceSupported, android.MultilibCommon) android.InitDefaultableModule(module) - android.InitSdkAwareModule(module) android.InitOverridableModule(module, &module.overridableProperties.Overrides) android.InitBazelModule(module) multitree.InitExportableModule(module) diff --git a/cc/cc.go b/cc/cc.go index 6271b2888..f514ee475 100644 --- a/cc/cc.go +++ b/cc/cc.go @@ -818,7 +818,6 @@ type BazelHandler interface { type Module struct { fuzz.FuzzModule - android.SdkBase android.BazelModuleBase VendorProperties VendorProperties @@ -1199,7 +1198,6 @@ func (c *Module) Init() android.Module { android.InitBazelModule(c) } android.InitApexModule(c) - android.InitSdkAwareModule(c) android.InitDefaultableModule(c) return c diff --git a/cc/prebuilt.go b/cc/prebuilt.go index 9fbf8794e..b3472e583 100644 --- a/cc/prebuilt.go +++ b/cc/prebuilt.go @@ -293,8 +293,6 @@ func NewPrebuiltLibrary(hod android.HostOrDeviceSupported, srcsProperty string) android.InitPrebuiltModuleWithSrcSupplier(module, srcsSupplier, srcsProperty) } - // Prebuilt libraries can be used in SDKs. - android.InitSdkAwareModule(module) return module, library } @@ -580,7 +578,6 @@ func NewPrebuiltObject(hod android.HostOrDeviceSupported) *Module { module.linker = prebuilt module.AddProperties(&prebuilt.properties) android.InitPrebuiltModule(module, &prebuilt.properties.Srcs) - android.InitSdkAwareModule(module) return module } diff --git a/java/base.go b/java/base.go index 55d77dc4a..84fda37cb 100644 --- a/java/base.go +++ b/java/base.go @@ -395,7 +395,6 @@ type Module struct { android.ModuleBase android.DefaultableModuleBase android.ApexModuleBase - android.SdkBase android.BazelModuleBase // Functionality common to Module and Import. diff --git a/java/bootclasspath_fragment.go b/java/bootclasspath_fragment.go index e67f1cab1..101d3cad9 100644 --- a/java/bootclasspath_fragment.go +++ b/java/bootclasspath_fragment.go @@ -229,7 +229,6 @@ type SourceOnlyBootclasspathProperties struct { type BootclasspathFragmentModule struct { android.ModuleBase android.ApexModuleBase - android.SdkBase ClasspathFragmentBase // True if this fragment is for testing purposes. @@ -279,7 +278,6 @@ func bootclasspathFragmentFactory() android.Module { m := &BootclasspathFragmentModule{} m.AddProperties(&m.properties, &m.sourceOnlyProperties) android.InitApexModule(m) - android.InitSdkAwareModule(m) initClasspathFragment(m, BOOTCLASSPATH) android.InitAndroidArchModule(m, android.DeviceSupported, android.MultilibCommon) @@ -1353,7 +1351,6 @@ func prebuiltBootclasspathFragmentFactory() android.Module { // array. android.InitPrebuiltModule(m, &[]string{"placeholder"}) android.InitApexModule(m) - android.InitSdkAwareModule(m) android.InitAndroidArchModule(m, android.HostAndDeviceSupported, android.MultilibCommon) // Initialize the contents property from the image_name. diff --git a/java/droidstubs.go b/java/droidstubs.go index 5777b185c..c9fd74dcf 100644 --- a/java/droidstubs.go +++ b/java/droidstubs.go @@ -46,7 +46,6 @@ func RegisterStubsBuildComponents(ctx android.RegistrationContext) { // Droidstubs type Droidstubs struct { Javadoc - android.SdkBase properties DroidstubsProperties apiFile android.Path @@ -177,7 +176,6 @@ func DroidstubsFactory() android.Module { &module.Javadoc.properties) InitDroiddocModule(module, android.HostAndDeviceSupported) - android.InitSdkAwareModule(module) return module } @@ -857,7 +855,6 @@ type PrebuiltStubsSources struct { android.ModuleBase android.DefaultableModuleBase prebuilt android.Prebuilt - android.SdkBase properties PrebuiltStubsSourcesProperties @@ -937,7 +934,6 @@ func PrebuiltStubsSourcesFactory() android.Module { module.AddProperties(&module.properties) android.InitPrebuiltModule(module, &module.properties.Srcs) - android.InitSdkAwareModule(module) InitDroiddocModule(module, android.HostAndDeviceSupported) return module } diff --git a/java/java.go b/java/java.go index 9dd585062..7c1563959 100644 --- a/java/java.go +++ b/java/java.go @@ -849,7 +849,6 @@ func LibraryFactory() android.Module { module.initModuleAndImport(module) android.InitApexModule(module) - android.InitSdkAwareModule(module) android.InitBazelModule(module) InitJavaModule(module, android.HostAndDeviceSupported) return module @@ -872,7 +871,6 @@ func LibraryHostFactory() android.Module { module.Module.properties.Installable = proptools.BoolPtr(true) android.InitApexModule(module) - android.InitSdkAwareModule(module) android.InitBazelModule(module) InitJavaModule(module, android.HostSupported) return module @@ -1295,7 +1293,6 @@ func TestFactory() android.Module { module.Module.dexpreopter.isTest = true module.Module.linter.properties.Lint.Test = proptools.BoolPtr(true) - android.InitSdkAwareModule(module) InitJavaModule(module, android.HostAndDeviceSupported) return module } @@ -1334,7 +1331,6 @@ func JavaTestImportFactory() android.Module { android.InitPrebuiltModule(module, &module.properties.Jars) android.InitApexModule(module) - android.InitSdkAwareModule(module) InitJavaModule(module, android.HostAndDeviceSupported) return module } @@ -1756,7 +1752,6 @@ type Import struct { android.ApexModuleBase android.BazelModuleBase prebuilt android.Prebuilt - android.SdkBase // Functionality common to Module and Import. embeddableInModuleAndImport @@ -2130,7 +2125,6 @@ func ImportFactory() android.Module { android.InitPrebuiltModule(module, &module.properties.Jars) android.InitApexModule(module) - android.InitSdkAwareModule(module) android.InitBazelModule(module) InitJavaModule(module, android.HostAndDeviceSupported) return module diff --git a/java/platform_compat_config.go b/java/platform_compat_config.go index 201dedede..d41729150 100644 --- a/java/platform_compat_config.go +++ b/java/platform_compat_config.go @@ -15,12 +15,11 @@ package java import ( + "fmt" "path/filepath" "android/soong/android" "github.com/google/blueprint" - - "fmt" ) func init() { @@ -55,7 +54,6 @@ type platformCompatConfigProperties struct { type platformCompatConfig struct { android.ModuleBase - android.SdkBase properties platformCompatConfigProperties installDirPath android.InstallPath @@ -127,7 +125,6 @@ func (p *platformCompatConfig) AndroidMkEntries() []android.AndroidMkEntries { func PlatformCompatConfigFactory() android.Module { module := &platformCompatConfig{} module.AddProperties(&module.properties) - android.InitSdkAwareModule(module) android.InitAndroidArchModule(module, android.DeviceSupported, android.MultilibCommon) return module } @@ -178,7 +175,6 @@ var _ android.SdkMemberType = (*compatConfigMemberType)(nil) // A prebuilt version of the platform compat config module. type prebuiltCompatConfigModule struct { android.ModuleBase - android.SdkBase prebuilt android.Prebuilt properties prebuiltCompatConfigProperties @@ -213,7 +209,6 @@ func prebuiltCompatConfigFactory() android.Module { m := &prebuiltCompatConfigModule{} m.AddProperties(&m.properties) android.InitSingleSourcePrebuiltModule(m, &m.properties, "Metadata") - android.InitSdkAwareModule(m) android.InitAndroidArchModule(m, android.DeviceSupported, android.MultilibCommon) return m } diff --git a/java/sdk_library.go b/java/sdk_library.go index 012309d4a..3b64bf733 100644 --- a/java/sdk_library.go +++ b/java/sdk_library.go @@ -752,7 +752,7 @@ type commonToSdkLibraryAndImportProperties struct { // commonSdkLibraryAndImportModule defines the interface that must be provided by a module that // embeds the commonToSdkLibraryAndImport struct. type commonSdkLibraryAndImportModule interface { - android.SdkAware + android.Module BaseModuleName() string } @@ -2048,7 +2048,6 @@ func SdkLibraryFactory() android.Module { module.InitSdkLibraryProperties() android.InitApexModule(module) - android.InitSdkAwareModule(module) InitJavaModule(module, android.HostAndDeviceSupported) // Initialize the map from scope to scope specific properties. @@ -2126,7 +2125,6 @@ type SdkLibraryImport struct { android.DefaultableModuleBase prebuilt android.Prebuilt android.ApexModuleBase - android.SdkBase hiddenAPI dexpreopter @@ -2208,7 +2206,6 @@ func sdkLibraryImportFactory() android.Module { android.InitPrebuiltModule(module, &[]string{""}) android.InitApexModule(module) - android.InitSdkAwareModule(module) InitJavaModule(module, android.HostAndDeviceSupported) module.SetDefaultableHook(func(mctx android.DefaultableHookContext) { diff --git a/java/system_modules.go b/java/system_modules.go index fec8ebaeb..0efa1a41c 100644 --- a/java/system_modules.go +++ b/java/system_modules.go @@ -114,7 +114,6 @@ func SystemModulesFactory() android.Module { module.AddProperties(&module.properties) android.InitAndroidArchModule(module, android.HostAndDeviceSupported, android.MultilibCommon) android.InitDefaultableModule(module) - android.InitSdkAwareModule(module) return module } @@ -130,7 +129,6 @@ var _ SystemModulesProvider = (*systemModulesImport)(nil) type SystemModules struct { android.ModuleBase android.DefaultableModuleBase - android.SdkBase properties SystemModulesProperties @@ -215,7 +213,6 @@ func systemModulesImportFactory() android.Module { android.InitPrebuiltModule(module, &module.properties.Libs) android.InitAndroidArchModule(module, android.HostAndDeviceSupported, android.MultilibCommon) android.InitDefaultableModule(module) - android.InitSdkAwareModule(module) return module } diff --git a/java/systemserver_classpath_fragment.go b/java/systemserver_classpath_fragment.go index f6cb79585..17d301b70 100644 --- a/java/systemserver_classpath_fragment.go +++ b/java/systemserver_classpath_fragment.go @@ -83,7 +83,6 @@ func (p *platformSystemServerClasspathModule) standaloneConfiguredJars(ctx andro type SystemServerClasspathModule struct { android.ModuleBase android.ApexModuleBase - android.SdkBase ClasspathFragmentBase @@ -113,7 +112,6 @@ func systemServerClasspathFactory() android.Module { m := &SystemServerClasspathModule{} m.AddProperties(&m.properties) android.InitApexModule(m) - android.InitSdkAwareModule(m) initClasspathFragment(m, SYSTEMSERVERCLASSPATH) android.InitAndroidArchModule(m, android.DeviceSupported, android.MultilibCommon) return m @@ -331,7 +329,6 @@ func prebuiltSystemServerClasspathModuleFactory() android.Module { // array. android.InitPrebuiltModule(m, &[]string{"placeholder"}) android.InitApexModule(m) - android.InitSdkAwareModule(m) android.InitAndroidArchModule(m, android.DeviceSupported, android.MultilibCommon) return m }