diff options
author | 2022-05-24 14:13:19 +0000 | |
---|---|---|
committer | 2022-05-24 14:13:19 +0000 | |
commit | 91f10eccc6a081800b24f8d7e5f8ad6ad14c4e40 (patch) | |
tree | 212aa469a575ecc7466a4c1706b4eccd41ad5170 /android/sdk.go | |
parent | 40f9873612fe2b1ec122f0c147ae811ffa4d2574 (diff) | |
parent | 96320dfff8fd5859a5e5f2a5c74bf8d79dd6499d (diff) |
Merge "Handle multiple linkages in sdk snapshots"
Diffstat (limited to 'android/sdk.go')
-rw-r--r-- | android/sdk.go | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/android/sdk.go b/android/sdk.go index 9317910ee..2dc0bd7f3 100644 --- a/android/sdk.go +++ b/android/sdk.go @@ -670,6 +670,9 @@ type SdkMemberType interface { // host OS variant explicitly and disable all other host OS'es. IsHostOsDependent() bool + // SupportedLinkages returns the names of the linkage variants supported by this module. + SupportedLinkages() []string + // AddDependencies adds dependencies from the SDK module to all the module variants the member // type contributes to the SDK. `names` is the list of module names given in the member type // property (as returned by SdkPropertyName()) in the SDK module. The exact set of variants @@ -733,6 +736,9 @@ type SdkMemberType interface { // SupportedTraits returns the set of traits supported by this member type. SupportedTraits() SdkMemberTraitSet + + // Overrides returns whether type overrides other SdkMemberType + Overrides(SdkMemberType) bool } var _ sdkRegisterable = (SdkMemberType)(nil) @@ -756,6 +762,13 @@ type SdkDependencyContext interface { type SdkMemberTypeBase struct { PropertyName string + // Property names that this SdkMemberTypeBase can override, this is useful when a module type is a + // superset of another module type. + OverridesPropertyNames map[string]bool + + // The names of linkage variants supported by this module. + SupportedLinkageNames []string + // When set to true BpPropertyNotRequired indicates that the member type does not require the // property to be specifiable in an Android.bp file. BpPropertyNotRequired bool @@ -796,6 +809,14 @@ func (b *SdkMemberTypeBase) SupportedTraits() SdkMemberTraitSet { return NewSdkMemberTraitSet(b.Traits) } +func (b *SdkMemberTypeBase) Overrides(other SdkMemberType) bool { + return b.OverridesPropertyNames[other.SdkPropertyName()] +} + +func (b *SdkMemberTypeBase) SupportedLinkages() []string { + return b.SupportedLinkageNames +} + // registeredModuleExportsMemberTypes is the set of registered SdkMemberTypes for module_exports // modules. var registeredModuleExportsMemberTypes = &sdkRegistry{} |