summaryrefslogtreecommitdiff
path: root/android/apex.go
diff options
context:
space:
mode:
author Paul Duffin <paulduffin@google.com> 2021-03-18 15:13:39 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2021-03-18 15:13:39 +0000
commitb72dd403ded63e37ca1cd1990e55690fa3da6e90 (patch)
treea251445052b05d83df4da2d6a5c2d8e23fcda472 /android/apex.go
parentb01125f92ba8cf4999c710369b7c0aa0af183fa2 (diff)
parent573989d8214c2268017ca2b6a608a2ef22b659d2 (diff)
Merge "Prevent ApexInfoMutator from creating unnecessary variants"
Diffstat (limited to 'android/apex.go')
-rw-r--r--android/apex.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/android/apex.go b/android/apex.go
index 79d8cdda3..0d5cac812 100644
--- a/android/apex.go
+++ b/android/apex.go
@@ -257,6 +257,9 @@ type ApexProperties struct {
}
// Marker interface that identifies dependencies that are excluded from APEX contents.
+//
+// Unless the tag also implements the AlwaysRequireApexVariantTag this will prevent an apex variant
+// from being created for the module.
type ExcludeFromApexContentsTag interface {
blueprint.DependencyTag
@@ -264,6 +267,17 @@ type ExcludeFromApexContentsTag interface {
ExcludeFromApexContents()
}
+// Marker interface that identifies dependencies that always requires an APEX variant to be created.
+//
+// It is possible for a dependency to require an apex variant but exclude the module from the APEX
+// contents. See sdk.sdkMemberDependencyTag.
+type AlwaysRequireApexVariantTag interface {
+ blueprint.DependencyTag
+
+ // Return true if this tag requires that the target dependency has an apex variant.
+ AlwaysRequireApexVariant() bool
+}
+
// Marker interface that identifies dependencies that should inherit the DirectlyInAnyApex state
// from the parent to the child. For example, stubs libraries are marked as DirectlyInAnyApex if
// their implementation is in an apex.