Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 11abc8f8 authored by Paul Duffin's avatar Paul Duffin Committed by Automerger Merge Worker
Browse files

Merge "Make licenseModule SdkAware" am: e746f30a

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1699187

Change-Id: I700e883007f12cf70a118b9708314c1297c18144
parents bef3a5ce e746f30a
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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)

+10 −0
Original line number Diff line number Diff line
@@ -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 {
+3 −3
Original line number Diff line number Diff line
@@ -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)
				}
			}()