Merge "Make licenseModule SdkAware"
This commit is contained in:
commit
e746f30a0b
3 changed files with 15 additions and 3 deletions
|
@ -51,6 +51,7 @@ type licenseProperties struct {
|
|||
type licenseModule struct {
|
||||
ModuleBase
|
||||
DefaultableModuleBase
|
||||
SdkBase
|
||||
|
||||
properties licenseProperties
|
||||
}
|
||||
|
@ -75,6 +76,7 @@ func LicenseFactory() Module {
|
|||
// The visibility property needs to be checked and parsed by the visibility module.
|
||||
setPrimaryVisibilityProperty(module, "visibility", &module.properties.Visibility)
|
||||
|
||||
InitSdkAwareModule(module)
|
||||
initAndroidModuleBase(module)
|
||||
InitDefaultableModule(module)
|
||||
|
||||
|
|
|
@ -41,6 +41,11 @@ 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
|
||||
BuildWithSdks(sdks SdkRefs)
|
||||
|
@ -140,6 +145,11 @@ 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 {
|
||||
|
|
|
@ -444,7 +444,7 @@ func memberDepsMutator(mctx android.TopDownMutatorContext) {
|
|||
// built with libfoo.mysdk.11 and libfoo.mysdk.12, respectively depending on which sdk they are
|
||||
// using.
|
||||
func memberInterVersionMutator(mctx android.BottomUpMutatorContext) {
|
||||
if m, ok := mctx.Module().(android.SdkAware); ok && m.IsInAnySdk() {
|
||||
if m, ok := mctx.Module().(android.SdkAware); ok && m.IsInAnySdk() && m.IsVersioned() {
|
||||
if !m.ContainingSdk().Unversioned() {
|
||||
memberName := m.MemberName()
|
||||
tag := sdkMemberVersionedDepTag{member: memberName, version: m.ContainingSdk().Version}
|
||||
|
@ -483,7 +483,7 @@ func sdkDepsMutator(mctx android.TopDownMutatorContext) {
|
|||
// Step 5: if libfoo.mysdk.11 is in the context where version 11 of mysdk is requested, the
|
||||
// versioned module is used instead of the un-versioned (in-development) module libfoo
|
||||
func sdkDepsReplaceMutator(mctx android.BottomUpMutatorContext) {
|
||||
if versionedSdkMember, ok := mctx.Module().(android.SdkAware); ok && versionedSdkMember.IsInAnySdk() {
|
||||
if versionedSdkMember, ok := mctx.Module().(android.SdkAware); ok && versionedSdkMember.IsInAnySdk() && versionedSdkMember.IsVersioned() {
|
||||
if sdk := versionedSdkMember.ContainingSdk(); !sdk.Unversioned() {
|
||||
// Only replace dependencies to <sdkmember> with <sdkmember@required-version>
|
||||
// if the depending module requires it. e.g.
|
||||
|
@ -499,7 +499,7 @@ func sdkDepsReplaceMutator(mctx android.BottomUpMutatorContext) {
|
|||
// TODO(b/183204176): Remove this after fixing.
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
mctx.ModuleErrorf("%s", r)
|
||||
mctx.ModuleErrorf("sdkDepsReplaceMutator %s", r)
|
||||
}
|
||||
}()
|
||||
|
||||
|
|
Loading…
Reference in a new issue