Loading android/sdk.go +10 −8 Original line number Diff line number Diff line Loading @@ -401,26 +401,26 @@ type SdkMemberTypeDependencyTag interface { ExportMember() bool } var _ SdkMemberTypeDependencyTag = (*sdkMemberDependencyTag)(nil) var _ ReplaceSourceWithPrebuilt = (*sdkMemberDependencyTag)(nil) var _ SdkMemberTypeDependencyTag = (*sdkMemberTypeDependencyTag)(nil) var _ ReplaceSourceWithPrebuilt = (*sdkMemberTypeDependencyTag)(nil) type sdkMemberDependencyTag struct { type sdkMemberTypeDependencyTag struct { blueprint.BaseDependencyTag memberType SdkMemberType export bool } func (t *sdkMemberDependencyTag) SdkMemberType(_ Module) SdkMemberType { func (t *sdkMemberTypeDependencyTag) SdkMemberType(_ Module) SdkMemberType { return t.memberType } func (t *sdkMemberDependencyTag) ExportMember() bool { func (t *sdkMemberTypeDependencyTag) ExportMember() bool { return t.export } // Prevent dependencies from the sdk/module_exports onto their members from being // replaced with a preferred prebuilt. func (t *sdkMemberDependencyTag) ReplaceSourceWithPrebuilt() bool { func (t *sdkMemberTypeDependencyTag) ReplaceSourceWithPrebuilt() bool { return false } Loading @@ -428,7 +428,7 @@ func (t *sdkMemberDependencyTag) ReplaceSourceWithPrebuilt() bool { // dependencies added by the tag to be added to the sdk as the specified SdkMemberType and exported // (or not) as specified by the export parameter. func DependencyTagForSdkMemberType(memberType SdkMemberType, export bool) SdkMemberTypeDependencyTag { return &sdkMemberDependencyTag{memberType: memberType, export: export} return &sdkMemberTypeDependencyTag{memberType: memberType, export: export} } // Interface that must be implemented for every type that can be a member of an Loading Loading @@ -610,8 +610,10 @@ func (r *SdkMemberTypesRegistry) UniqueOnceKey() OnceKey { return NewCustomOnceKey(r) } // The set of registered SdkMemberTypes, one for sdk module and one for module_exports. // The set of registered SdkMemberTypes for module_exports modules. var ModuleExportsMemberTypes = &SdkMemberTypesRegistry{} // The set of registered SdkMemberTypes for sdk modules. var SdkMemberTypes = &SdkMemberTypesRegistry{} // Register an SdkMemberType object to allow them to be used in the sdk and sdk_snapshot module Loading sdk/sdk.go +24 −24 Original line number Diff line number Diff line Loading @@ -50,7 +50,7 @@ type sdk struct { // The dynamically generated information about the registered SdkMemberType dynamicSdkMemberTypes *dynamicSdkMemberTypes // The dynamically created instance of the properties struct containing the sdk member // The dynamically created instance of the properties struct containing the sdk member type // list properties, e.g. java_libs. dynamicMemberTypeListProperties interface{} Loading Loading @@ -95,9 +95,9 @@ type sdkProperties struct { Prebuilt_visibility []string } // Contains information about the sdk properties that list sdk members, e.g. // Contains information about the sdk properties that list sdk members by type, e.g. // Java_header_libs. type sdkMemberListProperty struct { type sdkMemberTypeListProperty struct { // getter for the list of member names getter func(properties interface{}) []string Loading @@ -112,7 +112,7 @@ type sdkMemberListProperty struct { dependencyTag android.SdkMemberTypeDependencyTag } func (p *sdkMemberListProperty) propertyName() string { func (p *sdkMemberTypeListProperty) propertyName() string { return p.memberType.SdkPropertyName() } Loading @@ -129,12 +129,12 @@ type dynamicSdkMemberTypes struct { propertiesStructType reflect.Type // Information about each of the member type specific list properties. memberListProperties []*sdkMemberListProperty memberTypeListProperties []*sdkMemberTypeListProperty memberTypeToProperty map[android.SdkMemberType]*sdkMemberListProperty memberTypeToProperty map[android.SdkMemberType]*sdkMemberTypeListProperty } func (d *dynamicSdkMemberTypes) createMemberListProperties() interface{} { func (d *dynamicSdkMemberTypes) createMemberTypeListProperties() interface{} { return reflect.New(d.propertiesStructType).Interface() } Loading Loading @@ -164,11 +164,11 @@ func getDynamicSdkMemberTypes(registry *android.SdkMemberTypesRegistry) *dynamic // func createDynamicSdkMemberTypes(sdkMemberTypes []android.SdkMemberType) *dynamicSdkMemberTypes { var listProperties []*sdkMemberListProperty memberTypeToProperty := map[android.SdkMemberType]*sdkMemberListProperty{} var listProperties []*sdkMemberTypeListProperty memberTypeToProperty := map[android.SdkMemberType]*sdkMemberTypeListProperty{} var fields []reflect.StructField // Iterate over the member types creating StructField and sdkMemberListProperty objects. // Iterate over the member types creating StructField and sdkMemberTypeListProperty objects. nextFieldIndex := 0 for _, memberType := range sdkMemberTypes { Loading Loading @@ -213,8 +213,8 @@ func createDynamicSdkMemberTypes(sdkMemberTypes []android.SdkMemberType) *dynami } } // Create an sdkMemberListProperty for the member type. memberListProperty := &sdkMemberListProperty{ // Create an sdkMemberTypeListProperty for the member type. memberListProperty := &sdkMemberTypeListProperty{ getter: getter, setter: setter, memberType: memberType, Loading @@ -231,7 +231,7 @@ func createDynamicSdkMemberTypes(sdkMemberTypes []android.SdkMemberType) *dynami propertiesStructType := reflect.StructOf(fields) return &dynamicSdkMemberTypes{ memberListProperties: listProperties, memberTypeListProperties: listProperties, memberTypeToProperty: memberTypeToProperty, propertiesStructType: propertiesStructType, } Loading @@ -247,16 +247,16 @@ func newSdkModule(moduleExports bool) *sdk { s := &sdk{} s.properties.Module_exports = moduleExports // Get the dynamic sdk member type data for the currently registered sdk member types. var registry *android.SdkMemberTypesRegistry var typeRegistry *android.SdkMemberTypesRegistry if moduleExports { registry = android.ModuleExportsMemberTypes typeRegistry = android.ModuleExportsMemberTypes } else { registry = android.SdkMemberTypes typeRegistry = android.SdkMemberTypes } s.dynamicSdkMemberTypes = getDynamicSdkMemberTypes(registry) s.dynamicSdkMemberTypes = getDynamicSdkMemberTypes(typeRegistry) // Create an instance of the dynamically created struct that contains all the // properties for the member type specific list properties. s.dynamicMemberTypeListProperties = s.dynamicSdkMemberTypes.createMemberListProperties() s.dynamicMemberTypeListProperties = s.dynamicSdkMemberTypes.createMemberTypeListProperties() s.AddProperties(&s.properties, s.dynamicMemberTypeListProperties) // Make sure that the prebuilt visibility property is verified for errors. Loading @@ -280,11 +280,11 @@ func SnapshotModuleFactory() android.Module { return s } func (s *sdk) memberListProperties() []*sdkMemberListProperty { return s.dynamicSdkMemberTypes.memberListProperties func (s *sdk) memberTypeListProperties() []*sdkMemberTypeListProperty { return s.dynamicSdkMemberTypes.memberTypeListProperties } func (s *sdk) memberListProperty(memberType android.SdkMemberType) *sdkMemberListProperty { func (s *sdk) memberTypeListProperty(memberType android.SdkMemberType) *sdkMemberTypeListProperty { return s.dynamicSdkMemberTypes.memberTypeToProperty[memberType] } Loading Loading @@ -424,7 +424,7 @@ func memberMutator(mctx android.BottomUpMutatorContext) { // Add dependencies from enabled and non CommonOS variants to the sdk member variants. if s.Enabled() && !s.IsCommonOSVariant() { ctx := s.newDependencyContext(mctx) for _, memberListProperty := range s.memberListProperties() { for _, memberListProperty := range s.memberTypeListProperties() { if memberListProperty.getter == nil { continue } Loading sdk/update.go +5 −5 Original line number Diff line number Diff line Loading @@ -251,7 +251,7 @@ func (s *sdk) groupMemberVariantsByMemberThenType(ctx android.ModuleContext, mem } var members []*sdkMember for _, memberListProperty := range s.memberListProperties() { for _, memberListProperty := range s.memberTypeListProperties() { membersOfType := byType[memberListProperty.memberType] members = append(members, membersOfType...) } Loading Loading @@ -667,7 +667,7 @@ func (s *sdk) collateSnapshotModuleInfo(ctx android.BaseModuleContext, sdkVarian staticProperties := &snapshotModuleStaticProperties{ Compile_multilib: sdkVariant.multilibUsages.String(), } dynamicProperties := s.dynamicSdkMemberTypes.createMemberListProperties() dynamicProperties := s.dynamicSdkMemberTypes.createMemberTypeListProperties() combinedProperties := &combinedSnapshotModuleProperties{ sdkVariant: sdkVariant, Loading @@ -687,7 +687,7 @@ func (s *sdk) collateSnapshotModuleInfo(ctx android.BaseModuleContext, sdkVarian } combined := sdkVariantToCombinedProperties[memberVariantDep.sdkVariant] memberListProperty := s.memberListProperty(memberVariantDep.memberType) memberListProperty := s.memberTypeListProperty(memberVariantDep.memberType) memberName := ctx.OtherModuleName(memberVariantDep.variant) if memberListProperty.getter == nil { Loading Loading @@ -717,7 +717,7 @@ func (s *sdk) optimizeSnapshotModuleProperties(ctx android.ModuleContext, list [ } // Extract the common members, removing them from the original properties. commonDynamicProperties := s.dynamicSdkMemberTypes.createMemberListProperties() commonDynamicProperties := s.dynamicSdkMemberTypes.createMemberTypeListProperties() extractor := newCommonValueExtractor(commonDynamicProperties) extractCommonProperties(ctx, extractor, commonDynamicProperties, propertyContainers) Loading Loading @@ -750,7 +750,7 @@ func (s *sdk) addSnapshotPropertiesToPropertySet(builder *snapshotBuilder, prope } dynamicMemberTypeListProperties := combined.dynamicProperties for _, memberListProperty := range s.memberListProperties() { for _, memberListProperty := range s.memberTypeListProperties() { if memberListProperty.getter == nil { continue } Loading Loading
android/sdk.go +10 −8 Original line number Diff line number Diff line Loading @@ -401,26 +401,26 @@ type SdkMemberTypeDependencyTag interface { ExportMember() bool } var _ SdkMemberTypeDependencyTag = (*sdkMemberDependencyTag)(nil) var _ ReplaceSourceWithPrebuilt = (*sdkMemberDependencyTag)(nil) var _ SdkMemberTypeDependencyTag = (*sdkMemberTypeDependencyTag)(nil) var _ ReplaceSourceWithPrebuilt = (*sdkMemberTypeDependencyTag)(nil) type sdkMemberDependencyTag struct { type sdkMemberTypeDependencyTag struct { blueprint.BaseDependencyTag memberType SdkMemberType export bool } func (t *sdkMemberDependencyTag) SdkMemberType(_ Module) SdkMemberType { func (t *sdkMemberTypeDependencyTag) SdkMemberType(_ Module) SdkMemberType { return t.memberType } func (t *sdkMemberDependencyTag) ExportMember() bool { func (t *sdkMemberTypeDependencyTag) ExportMember() bool { return t.export } // Prevent dependencies from the sdk/module_exports onto their members from being // replaced with a preferred prebuilt. func (t *sdkMemberDependencyTag) ReplaceSourceWithPrebuilt() bool { func (t *sdkMemberTypeDependencyTag) ReplaceSourceWithPrebuilt() bool { return false } Loading @@ -428,7 +428,7 @@ func (t *sdkMemberDependencyTag) ReplaceSourceWithPrebuilt() bool { // dependencies added by the tag to be added to the sdk as the specified SdkMemberType and exported // (or not) as specified by the export parameter. func DependencyTagForSdkMemberType(memberType SdkMemberType, export bool) SdkMemberTypeDependencyTag { return &sdkMemberDependencyTag{memberType: memberType, export: export} return &sdkMemberTypeDependencyTag{memberType: memberType, export: export} } // Interface that must be implemented for every type that can be a member of an Loading Loading @@ -610,8 +610,10 @@ func (r *SdkMemberTypesRegistry) UniqueOnceKey() OnceKey { return NewCustomOnceKey(r) } // The set of registered SdkMemberTypes, one for sdk module and one for module_exports. // The set of registered SdkMemberTypes for module_exports modules. var ModuleExportsMemberTypes = &SdkMemberTypesRegistry{} // The set of registered SdkMemberTypes for sdk modules. var SdkMemberTypes = &SdkMemberTypesRegistry{} // Register an SdkMemberType object to allow them to be used in the sdk and sdk_snapshot module Loading
sdk/sdk.go +24 −24 Original line number Diff line number Diff line Loading @@ -50,7 +50,7 @@ type sdk struct { // The dynamically generated information about the registered SdkMemberType dynamicSdkMemberTypes *dynamicSdkMemberTypes // The dynamically created instance of the properties struct containing the sdk member // The dynamically created instance of the properties struct containing the sdk member type // list properties, e.g. java_libs. dynamicMemberTypeListProperties interface{} Loading Loading @@ -95,9 +95,9 @@ type sdkProperties struct { Prebuilt_visibility []string } // Contains information about the sdk properties that list sdk members, e.g. // Contains information about the sdk properties that list sdk members by type, e.g. // Java_header_libs. type sdkMemberListProperty struct { type sdkMemberTypeListProperty struct { // getter for the list of member names getter func(properties interface{}) []string Loading @@ -112,7 +112,7 @@ type sdkMemberListProperty struct { dependencyTag android.SdkMemberTypeDependencyTag } func (p *sdkMemberListProperty) propertyName() string { func (p *sdkMemberTypeListProperty) propertyName() string { return p.memberType.SdkPropertyName() } Loading @@ -129,12 +129,12 @@ type dynamicSdkMemberTypes struct { propertiesStructType reflect.Type // Information about each of the member type specific list properties. memberListProperties []*sdkMemberListProperty memberTypeListProperties []*sdkMemberTypeListProperty memberTypeToProperty map[android.SdkMemberType]*sdkMemberListProperty memberTypeToProperty map[android.SdkMemberType]*sdkMemberTypeListProperty } func (d *dynamicSdkMemberTypes) createMemberListProperties() interface{} { func (d *dynamicSdkMemberTypes) createMemberTypeListProperties() interface{} { return reflect.New(d.propertiesStructType).Interface() } Loading Loading @@ -164,11 +164,11 @@ func getDynamicSdkMemberTypes(registry *android.SdkMemberTypesRegistry) *dynamic // func createDynamicSdkMemberTypes(sdkMemberTypes []android.SdkMemberType) *dynamicSdkMemberTypes { var listProperties []*sdkMemberListProperty memberTypeToProperty := map[android.SdkMemberType]*sdkMemberListProperty{} var listProperties []*sdkMemberTypeListProperty memberTypeToProperty := map[android.SdkMemberType]*sdkMemberTypeListProperty{} var fields []reflect.StructField // Iterate over the member types creating StructField and sdkMemberListProperty objects. // Iterate over the member types creating StructField and sdkMemberTypeListProperty objects. nextFieldIndex := 0 for _, memberType := range sdkMemberTypes { Loading Loading @@ -213,8 +213,8 @@ func createDynamicSdkMemberTypes(sdkMemberTypes []android.SdkMemberType) *dynami } } // Create an sdkMemberListProperty for the member type. memberListProperty := &sdkMemberListProperty{ // Create an sdkMemberTypeListProperty for the member type. memberListProperty := &sdkMemberTypeListProperty{ getter: getter, setter: setter, memberType: memberType, Loading @@ -231,7 +231,7 @@ func createDynamicSdkMemberTypes(sdkMemberTypes []android.SdkMemberType) *dynami propertiesStructType := reflect.StructOf(fields) return &dynamicSdkMemberTypes{ memberListProperties: listProperties, memberTypeListProperties: listProperties, memberTypeToProperty: memberTypeToProperty, propertiesStructType: propertiesStructType, } Loading @@ -247,16 +247,16 @@ func newSdkModule(moduleExports bool) *sdk { s := &sdk{} s.properties.Module_exports = moduleExports // Get the dynamic sdk member type data for the currently registered sdk member types. var registry *android.SdkMemberTypesRegistry var typeRegistry *android.SdkMemberTypesRegistry if moduleExports { registry = android.ModuleExportsMemberTypes typeRegistry = android.ModuleExportsMemberTypes } else { registry = android.SdkMemberTypes typeRegistry = android.SdkMemberTypes } s.dynamicSdkMemberTypes = getDynamicSdkMemberTypes(registry) s.dynamicSdkMemberTypes = getDynamicSdkMemberTypes(typeRegistry) // Create an instance of the dynamically created struct that contains all the // properties for the member type specific list properties. s.dynamicMemberTypeListProperties = s.dynamicSdkMemberTypes.createMemberListProperties() s.dynamicMemberTypeListProperties = s.dynamicSdkMemberTypes.createMemberTypeListProperties() s.AddProperties(&s.properties, s.dynamicMemberTypeListProperties) // Make sure that the prebuilt visibility property is verified for errors. Loading @@ -280,11 +280,11 @@ func SnapshotModuleFactory() android.Module { return s } func (s *sdk) memberListProperties() []*sdkMemberListProperty { return s.dynamicSdkMemberTypes.memberListProperties func (s *sdk) memberTypeListProperties() []*sdkMemberTypeListProperty { return s.dynamicSdkMemberTypes.memberTypeListProperties } func (s *sdk) memberListProperty(memberType android.SdkMemberType) *sdkMemberListProperty { func (s *sdk) memberTypeListProperty(memberType android.SdkMemberType) *sdkMemberTypeListProperty { return s.dynamicSdkMemberTypes.memberTypeToProperty[memberType] } Loading Loading @@ -424,7 +424,7 @@ func memberMutator(mctx android.BottomUpMutatorContext) { // Add dependencies from enabled and non CommonOS variants to the sdk member variants. if s.Enabled() && !s.IsCommonOSVariant() { ctx := s.newDependencyContext(mctx) for _, memberListProperty := range s.memberListProperties() { for _, memberListProperty := range s.memberTypeListProperties() { if memberListProperty.getter == nil { continue } Loading
sdk/update.go +5 −5 Original line number Diff line number Diff line Loading @@ -251,7 +251,7 @@ func (s *sdk) groupMemberVariantsByMemberThenType(ctx android.ModuleContext, mem } var members []*sdkMember for _, memberListProperty := range s.memberListProperties() { for _, memberListProperty := range s.memberTypeListProperties() { membersOfType := byType[memberListProperty.memberType] members = append(members, membersOfType...) } Loading Loading @@ -667,7 +667,7 @@ func (s *sdk) collateSnapshotModuleInfo(ctx android.BaseModuleContext, sdkVarian staticProperties := &snapshotModuleStaticProperties{ Compile_multilib: sdkVariant.multilibUsages.String(), } dynamicProperties := s.dynamicSdkMemberTypes.createMemberListProperties() dynamicProperties := s.dynamicSdkMemberTypes.createMemberTypeListProperties() combinedProperties := &combinedSnapshotModuleProperties{ sdkVariant: sdkVariant, Loading @@ -687,7 +687,7 @@ func (s *sdk) collateSnapshotModuleInfo(ctx android.BaseModuleContext, sdkVarian } combined := sdkVariantToCombinedProperties[memberVariantDep.sdkVariant] memberListProperty := s.memberListProperty(memberVariantDep.memberType) memberListProperty := s.memberTypeListProperty(memberVariantDep.memberType) memberName := ctx.OtherModuleName(memberVariantDep.variant) if memberListProperty.getter == nil { Loading Loading @@ -717,7 +717,7 @@ func (s *sdk) optimizeSnapshotModuleProperties(ctx android.ModuleContext, list [ } // Extract the common members, removing them from the original properties. commonDynamicProperties := s.dynamicSdkMemberTypes.createMemberListProperties() commonDynamicProperties := s.dynamicSdkMemberTypes.createMemberTypeListProperties() extractor := newCommonValueExtractor(commonDynamicProperties) extractCommonProperties(ctx, extractor, commonDynamicProperties, propertyContainers) Loading Loading @@ -750,7 +750,7 @@ func (s *sdk) addSnapshotPropertiesToPropertySet(builder *snapshotBuilder, prope } dynamicMemberTypeListProperties := combined.dynamicProperties for _, memberListProperty := range s.memberListProperties() { for _, memberListProperty := range s.memberTypeListProperties() { if memberListProperty.getter == nil { continue } Loading