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

Commit de21202b authored by Paul Duffin's avatar Paul Duffin Committed by Gerrit Code Review
Browse files

Merge changes I45274836,I47268b81

* changes:
  Add PrebuiltNameFromSource
  Add IsModulePreferred
parents d7d72398 864116ce
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -82,6 +82,12 @@ func RemoveOptionalPrebuiltPrefix(name string) string {
}

func (p *Prebuilt) Name(name string) string {
	return PrebuiltNameFromSource(name)
}

// PrebuiltNameFromSource returns the result of prepending the "prebuilt_" prefix to the supplied
// name.
func PrebuiltNameFromSource(name string) string {
	return "prebuilt_" + name
}

@@ -213,6 +219,26 @@ type PrebuiltInterface interface {
	Prebuilt() *Prebuilt
}

// IsModulePreferred returns true if the given module is preferred.
//
// A source module is preferred if there is no corresponding prebuilt module or the prebuilt module
// does not have "prefer: true".
//
// A prebuilt module is preferred if there is no corresponding source module or the prebuilt module
// has "prefer: true".
func IsModulePreferred(module Module) bool {
	if module.IsReplacedByPrebuilt() {
		// A source module that has been replaced by a prebuilt counterpart.
		return false
	}
	if prebuilt, ok := module.(PrebuiltInterface); ok {
		if p := prebuilt.Prebuilt(); p != nil {
			return p.UsePrebuilt()
		}
	}
	return true
}

func RegisterPrebuiltsPreArchMutators(ctx RegisterMutatorsContext) {
	ctx.BottomUp("prebuilt_rename", PrebuiltRenameMutator).Parallel()
}
+1 −1
Original line number Diff line number Diff line
@@ -250,7 +250,7 @@ func prebuiltApexExportedModuleName(ctx android.BottomUpMutatorContext, name str
	// the unprefixed name is the one to use. If the unprefixed one turns out to be a source module
	// and not a renamed prebuilt module then that will be detected and reported as an error when
	// processing the dependency in ApexInfoMutator().
	prebuiltName := "prebuilt_" + name
	prebuiltName := android.PrebuiltNameFromSource(name)
	if ctx.OtherModuleExists(prebuiltName) {
		name = prebuiltName
	}
+1 −10
Original line number Diff line number Diff line
@@ -56,16 +56,7 @@ func isActiveModule(module android.Module) bool {
	if !module.Enabled() {
		return false
	}
	if module.IsReplacedByPrebuilt() {
		// A source module that has been replaced by a prebuilt counterpart.
		return false
	}
	if prebuilt, ok := module.(android.PrebuiltInterface); ok {
		if p := prebuilt.Prebuilt(); p != nil {
			return p.UsePrebuilt()
		}
	}
	return true
	return android.IsModulePreferred(module)
}

func (b *bootJarsSingleton) GenerateBuildActions(ctx android.SingletonContext) {
+1 −9
Original line number Diff line number Diff line
@@ -232,15 +232,7 @@ func isModulePreferredByCompatConfig(module android.Module) bool {
		}
	}

	// A prebuilt module should only be used when it is preferred.
	if pi, ok := module.(android.PrebuiltInterface); ok {
		if p := pi.Prebuilt(); p != nil {
			return p.UsePrebuilt()
		}
	}

	// Otherwise, a module should only be used if it has not been replaced by a prebuilt.
	return !module.IsReplacedByPrebuilt()
	return android.IsModulePreferred(module)
}

func (p *platformCompatConfigSingleton) GenerateBuildActions(ctx android.SingletonContext) {
+2 −2
Original line number Diff line number Diff line
@@ -1945,11 +1945,11 @@ func (module *SdkLibraryImport) ComponentDepsMutator(ctx android.BottomUpMutator
		}

		// Add dependencies to the prebuilt stubs library
		ctx.AddVariationDependencies(nil, apiScope.stubsTag, "prebuilt_"+module.stubsLibraryModuleName(apiScope))
		ctx.AddVariationDependencies(nil, apiScope.stubsTag, android.PrebuiltNameFromSource(module.stubsLibraryModuleName(apiScope)))

		if len(scopeProperties.Stub_srcs) > 0 {
			// Add dependencies to the prebuilt stubs source library
			ctx.AddVariationDependencies(nil, apiScope.stubsSourceTag, "prebuilt_"+module.stubsSourceModuleName(apiScope))
			ctx.AddVariationDependencies(nil, apiScope.stubsSourceTag, android.PrebuiltNameFromSource(module.stubsSourceModuleName(apiScope)))
		}
	}
}
Loading