Remove old SdkMemberType API for creating snapshot modules am: 495ffb9ff9

Change-Id: I0ac5b7851ab1742d5ea8457029a92bd4e89d8229
This commit is contained in:
Paul Duffin
2020-03-23 11:37:10 +00:00
committed by Automerger Merge Worker
4 changed files with 54 additions and 62 deletions

View File

@@ -145,10 +145,6 @@ func (s *SdkBase) RequiredSdks() SdkRefs {
return s.properties.RequiredSdks return s.properties.RequiredSdks
} }
func (s *SdkBase) BuildSnapshot(sdkModuleContext ModuleContext, builder SnapshotBuilder) {
sdkModuleContext.ModuleErrorf("module type " + sdkModuleContext.OtherModuleType(s.module) + " cannot be used in an sdk")
}
// InitSdkAwareModule initializes the SdkBase struct. This must be called by all modules including // InitSdkAwareModule initializes the SdkBase struct. This must be called by all modules including
// SdkBase. // SdkBase.
func InitSdkAwareModule(m SdkAware) { func InitSdkAwareModule(m SdkAware) {
@@ -320,17 +316,6 @@ type SdkMemberType interface {
// the module is not allowed in whichever sdk property it was added. // the module is not allowed in whichever sdk property it was added.
IsInstance(module Module) bool IsInstance(module Module) bool
// Build the snapshot for the SDK member
//
// The ModuleContext provided is for the SDK module, so information for
// variants in the supplied member can be accessed using the Other... methods.
//
// The SdkMember is guaranteed to contain variants for which the
// IsInstance(Module) method returned true.
//
// deprecated Use AddPrebuiltModule() instead.
BuildSnapshot(sdkModuleContext ModuleContext, builder SnapshotBuilder, member SdkMember)
// Add a prebuilt module that the sdk will populate. // Add a prebuilt module that the sdk will populate.
// //
// Returning nil from this will cause the sdk module type to use the deprecated BuildSnapshot // Returning nil from this will cause the sdk module type to use the deprecated BuildSnapshot
@@ -382,19 +367,6 @@ func (b *SdkMemberTypeBase) HasTransitiveSdkMembers() bool {
return b.TransitiveSdkMembers return b.TransitiveSdkMembers
} }
func (b *SdkMemberTypeBase) BuildSnapshot(sdkModuleContext ModuleContext, builder SnapshotBuilder, member SdkMember) {
panic("override AddPrebuiltModule")
}
func (b *SdkMemberTypeBase) AddPrebuiltModule(ctx SdkMemberContext, member SdkMember) BpModule {
// Returning nil causes the legacy BuildSnapshot method to be used.
return nil
}
func (b *SdkMemberTypeBase) CreateVariantPropertiesStruct() SdkMemberProperties {
panic("override me")
}
// Encapsulates the information about registered SdkMemberTypes. // Encapsulates the information about registered SdkMemberTypes.
type SdkMemberTypesRegistry struct { type SdkMemberTypesRegistry struct {
// The list of types sorted by property name. // The list of types sorted by property name.

View File

@@ -2041,18 +2041,33 @@ func (mt *droidStubsSdkMemberType) IsInstance(module android.Module) bool {
return ok return ok
} }
func (mt *droidStubsSdkMemberType) BuildSnapshot(sdkModuleContext android.ModuleContext, builder android.SnapshotBuilder, member android.SdkMember) { func (mt *droidStubsSdkMemberType) AddPrebuiltModule(ctx android.SdkMemberContext, member android.SdkMember) android.BpModule {
variants := member.Variants() return ctx.SnapshotBuilder().AddPrebuiltModule(member, "prebuilt_stubs_sources")
if len(variants) != 1 { }
sdkModuleContext.ModuleErrorf("sdk contains %d variants of member %q but only one is allowed", len(variants), member.Name())
} func (mt *droidStubsSdkMemberType) CreateVariantPropertiesStruct() android.SdkMemberProperties {
variant := variants[0] return &droidStubsInfoProperties{}
d, _ := variant.(*Droidstubs) }
stubsSrcJar := d.stubsSrcJar
type droidStubsInfoProperties struct {
snapshotRelativeDir := filepath.Join("java", d.Name()+"_stubs_sources") android.SdkMemberPropertiesBase
builder.UnzipToSnapshot(stubsSrcJar, snapshotRelativeDir)
StubsSrcJar android.Path
pbm := builder.AddPrebuiltModule(member, "prebuilt_stubs_sources") }
pbm.AddProperty("srcs", []string{snapshotRelativeDir})
func (p *droidStubsInfoProperties) PopulateFromVariant(ctx android.SdkMemberContext, variant android.Module) {
droidstubs := variant.(*Droidstubs)
p.StubsSrcJar = droidstubs.stubsSrcJar
}
func (p *droidStubsInfoProperties) AddToPropertySet(ctx android.SdkMemberContext, propertySet android.BpPropertySet) {
if p.StubsSrcJar != nil {
builder := ctx.SnapshotBuilder()
snapshotRelativeDir := filepath.Join("java", ctx.Name()+"_stubs_sources")
builder.UnzipToSnapshot(p.StubsSrcJar, snapshotRelativeDir)
propertySet.AddProperty("srcs", []string{snapshotRelativeDir})
}
} }

View File

@@ -242,18 +242,28 @@ func (mt *systemModulesSdkMemberType) IsInstance(module android.Module) bool {
return false return false
} }
func (mt *systemModulesSdkMemberType) BuildSnapshot(sdkModuleContext android.ModuleContext, builder android.SnapshotBuilder, member android.SdkMember) { func (mt *systemModulesSdkMemberType) AddPrebuiltModule(ctx android.SdkMemberContext, member android.SdkMember) android.BpModule {
variants := member.Variants() return ctx.SnapshotBuilder().AddPrebuiltModule(member, "java_system_modules_import")
if len(variants) != 1 { }
sdkModuleContext.ModuleErrorf("sdk contains %d variants of member %q but only one is allowed", len(variants), member.Name())
for _, variant := range variants { type systemModulesInfoProperties struct {
sdkModuleContext.ModuleErrorf(" %q", variant) android.SdkMemberPropertiesBase
}
} Libs []string
variant := variants[0] }
systemModule := variant.(*SystemModules)
func (mt *systemModulesSdkMemberType) CreateVariantPropertiesStruct() android.SdkMemberProperties {
pbm := builder.AddPrebuiltModule(member, "java_system_modules_import") return &systemModulesInfoProperties{}
// Add the references to the libraries that form the system module. }
pbm.AddPropertyWithTag("libs", systemModule.properties.Libs, builder.SdkMemberReferencePropertyTag(true))
func (p *systemModulesInfoProperties) PopulateFromVariant(ctx android.SdkMemberContext, variant android.Module) {
systemModule := variant.(*SystemModules)
p.Libs = systemModule.properties.Libs
}
func (p *systemModulesInfoProperties) AddToPropertySet(ctx android.SdkMemberContext, propertySet android.BpPropertySet) {
if len(p.Libs) > 0 {
// Add the references to the libraries that form the system module.
propertySet.AddPropertyWithTag("libs", p.Libs, ctx.SnapshotBuilder().SdkMemberReferencePropertyTag(true))
}
} }

View File

@@ -258,13 +258,8 @@ func (s *sdk) buildSnapshot(ctx android.ModuleContext, sdkVariants []*sdk) andro
memberCtx := &memberContext{ctx, builder, memberType, member.name} memberCtx := &memberContext{ctx, builder, memberType, member.name}
prebuiltModule := memberType.AddPrebuiltModule(memberCtx, member) prebuiltModule := memberType.AddPrebuiltModule(memberCtx, member)
if prebuiltModule == nil {
// Fall back to legacy method of building a snapshot
memberType.BuildSnapshot(ctx, builder, member)
} else {
s.createMemberSnapshot(memberCtx, member, prebuiltModule) s.createMemberSnapshot(memberCtx, member, prebuiltModule)
} }
}
// Create a transformer that will transform an unversioned module into a versioned module. // Create a transformer that will transform an unversioned module into a versioned module.
unversionedToVersionedTransformer := unversionedToVersionedTransformation{builder: builder} unversionedToVersionedTransformer := unversionedToVersionedTransformation{builder: builder}