Merge "Remove memberDepsMutator, SdkAware et al"
diff --git a/android/sdk.go b/android/sdk.go
index 063091e..8b23d63 100644
--- a/android/sdk.go
+++ b/android/sdk.go
@@ -23,27 +23,6 @@
"github.com/google/blueprint/proptools"
)
-// sdkAwareWithoutModule is provided simply to improve code navigation with the IDE.
-type sdkAwareWithoutModule interface {
- sdkBase() *SdkBase
- MakeMemberOf(sdk SdkRef)
- IsInAnySdk() bool
-
- // IsVersioned determines whether the module is versioned, i.e. has a name of the form
- // <name>@<version>
- IsVersioned() bool
-
- ContainingSdk() SdkRef
- MemberName() string
-}
-
-// SdkAware is the interface that must be supported by any module to become a member of SDK or to be
-// built with SDK
-type SdkAware interface {
- Module
- sdkAwareWithoutModule
-}
-
// minApiLevelForSdkSnapshot provides access to the min_sdk_version for MinApiLevelForSdkSnapshot
type minApiLevelForSdkSnapshot interface {
MinSdkVersion(ctx EarlyModuleContext) SdkSpec
@@ -64,116 +43,6 @@
return minApiLevel
}
-// SdkRef refers to a version of an SDK
-type SdkRef struct {
- Name string
- Version string
-}
-
-// Unversioned determines if the SdkRef is referencing to the unversioned SDK module
-func (s SdkRef) Unversioned() bool {
- return s.Version == ""
-}
-
-// String returns string representation of this SdkRef for debugging purpose
-func (s SdkRef) String() string {
- if s.Name == "" {
- return "(No Sdk)"
- }
- if s.Unversioned() {
- return s.Name
- }
- return s.Name + string(SdkVersionSeparator) + s.Version
-}
-
-// SdkVersionSeparator is a character used to separate an sdk name and its version
-const SdkVersionSeparator = '@'
-
-// ParseSdkRef parses a `name@version` style string into a corresponding SdkRef struct
-func ParseSdkRef(ctx BaseModuleContext, str string, property string) SdkRef {
- tokens := strings.Split(str, string(SdkVersionSeparator))
- if len(tokens) < 1 || len(tokens) > 2 {
- ctx.PropertyErrorf(property, "%q does not follow name@version syntax", str)
- return SdkRef{Name: "invalid sdk name", Version: "invalid sdk version"}
- }
-
- name := tokens[0]
-
- var version string
- if len(tokens) == 2 {
- version = tokens[1]
- }
-
- return SdkRef{Name: name, Version: version}
-}
-
-type SdkRefs []SdkRef
-
-// Contains tells if the given SdkRef is in this list of SdkRef's
-func (refs SdkRefs) Contains(s SdkRef) bool {
- for _, r := range refs {
- if r == s {
- return true
- }
- }
- return false
-}
-
-type sdkProperties struct {
- // The SDK that this module is a member of. nil if it is not a member of any SDK
- ContainingSdk *SdkRef `blueprint:"mutated"`
-
- // Name of the module that this sdk member is representing
- Sdk_member_name *string
-}
-
-// SdkBase is a struct that is expected to be included in module types to implement the SdkAware
-// interface. InitSdkAwareModule should be called to initialize this struct.
-type SdkBase struct {
- properties sdkProperties
- module SdkAware
-}
-
-func (s *SdkBase) sdkBase() *SdkBase {
- return s
-}
-
-// MakeMemberOf sets this module to be a member of a specific SDK
-func (s *SdkBase) MakeMemberOf(sdk SdkRef) {
- s.properties.ContainingSdk = &sdk
-}
-
-// IsInAnySdk returns true if this module is a member of any SDK
-func (s *SdkBase) IsInAnySdk() bool {
- return s.properties.ContainingSdk != nil
-}
-
-// IsVersioned returns true if this module is versioned.
-func (s *SdkBase) IsVersioned() bool {
- return strings.Contains(s.module.Name(), "@")
-}
-
-// ContainingSdk returns the SDK that this module is a member of
-func (s *SdkBase) ContainingSdk() SdkRef {
- if s.properties.ContainingSdk != nil {
- return *s.properties.ContainingSdk
- }
- return SdkRef{Name: "", Version: ""}
-}
-
-// MemberName returns the name of the module that this SDK member is overriding
-func (s *SdkBase) MemberName() string {
- return proptools.String(s.properties.Sdk_member_name)
-}
-
-// InitSdkAwareModule initializes the SdkBase struct. This must be called by all modules including
-// SdkBase.
-func InitSdkAwareModule(m SdkAware) {
- base := m.sdkBase()
- base.module = m
- m.AddProperties(&base.properties)
-}
-
// SnapshotBuilder provides support for generating the build rules which will build the snapshot.
type SnapshotBuilder interface {
// CopyToSnapshot generates a rule that will copy the src to the dest (which is a snapshot
diff --git a/sdk/sdk.go b/sdk/sdk.go
index aeeedb4..66a1b54 100644
--- a/sdk/sdk.go
+++ b/sdk/sdk.go
@@ -17,7 +17,6 @@
import (
"fmt"
"io"
- "strconv"
"github.com/google/blueprint"
"github.com/google/blueprint/proptools"
@@ -280,7 +279,6 @@
// outside of the sdk package
func RegisterPreDepsMutators(ctx android.RegisterMutatorsContext) {
ctx.BottomUp("SdkMember", memberMutator).Parallel()
- ctx.TopDown("SdkMember_deps", memberDepsMutator).Parallel()
}
type dependencyTag struct {
@@ -324,36 +322,3 @@
}
}
}
-
-// Step 2: record that dependencies of SDK modules are members of the SDK modules
-func memberDepsMutator(mctx android.TopDownMutatorContext) {
- if s, ok := mctx.Module().(*sdk); ok {
- mySdkRef := android.ParseSdkRef(mctx, mctx.ModuleName(), "name")
- if s.snapshot() && mySdkRef.Unversioned() {
- mctx.PropertyErrorf("name", "sdk_snapshot should be named as <name>@<version>. "+
- "Did you manually modify Android.bp?")
- }
- if !s.snapshot() && !mySdkRef.Unversioned() {
- mctx.PropertyErrorf("name", "sdk shouldn't be named as <name>@<version>.")
- }
- if mySdkRef.Version != "" && mySdkRef.Version != "current" {
- if _, err := strconv.Atoi(mySdkRef.Version); err != nil {
- mctx.PropertyErrorf("name", "version %q is neither a number nor \"current\"", mySdkRef.Version)
- }
- }
-
- mctx.VisitDirectDeps(func(child android.Module) {
- if member, ok := child.(android.SdkAware); ok {
- member.MakeMemberOf(mySdkRef)
- }
- })
- }
-}
-
-// An interface that encapsulates all the functionality needed to manage the sdk dependencies.
-//
-// It is a mixture of apex and sdk module functionality.
-type sdkAndApexModule interface {
- android.Module
- android.DepIsInSameApex
-}