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

Commit fb45ee3d authored by Jiyong Park's avatar Jiyong Park Committed by android-build-merger
Browse files

Merge "Delete prebuilt APEXes when installing source-built APEXes"

am: a822256e

Change-Id: I576969455e028010da6631f06010fd6369c4b589
parents a741ebf3 a822256e
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@ type prebuiltDependencyTag struct {
	blueprint.BaseDependencyTag
}

var prebuiltDepTag prebuiltDependencyTag
var PrebuiltDepTag prebuiltDependencyTag

type PrebuiltProperties struct {
	// When prefer is set to true the prebuilt will be used instead of any source module with
@@ -127,7 +127,7 @@ func PrebuiltMutator(ctx BottomUpMutatorContext) {
		p := m.Prebuilt()
		name := m.base().BaseModuleName()
		if ctx.OtherModuleExists(name) {
			ctx.AddReverseDependency(ctx.Module(), prebuiltDepTag, name)
			ctx.AddReverseDependency(ctx.Module(), PrebuiltDepTag, name)
			p.properties.SourceExists = true
		} else {
			ctx.Rename(name)
@@ -147,7 +147,7 @@ func PrebuiltSelectModuleMutator(ctx TopDownMutatorContext) {
			p.properties.UsePrebuilt = p.usePrebuilt(ctx, nil)
		}
	} else if s, ok := ctx.Module().(Module); ok {
		ctx.VisitDirectDepsWithTag(prebuiltDepTag, func(m Module) {
		ctx.VisitDirectDepsWithTag(PrebuiltDepTag, func(m Module) {
			p := m.(PrebuiltInterface).Prebuilt()
			if p.usePrebuilt(ctx, s) {
				p.properties.UsePrebuilt = true
+16 −0
Original line number Diff line number Diff line
@@ -410,6 +410,8 @@ type apexBundle struct {
	outputFiles      map[apexPackaging]android.WritablePath
	installDir       android.OutputPath

	prebuiltFileToDelete string

	public_key_file  android.Path
	private_key_file android.Path

@@ -862,6 +864,12 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) {
				} else {
					ctx.ModuleErrorf("certificate dependency %q must be an android_app_certificate module", depName)
				}
			case android.PrebuiltDepTag:
				// If the prebuilt is force disabled, remember to delete the prebuilt file
				// that might have been installed in the previous builds
				if prebuilt, ok := child.(*Prebuilt); ok && prebuilt.isForceDisabled() {
					a.prebuiltFileToDelete = prebuilt.InstallFilename()
				}
			}
		} else {
			// indirect dependencies
@@ -1362,6 +1370,10 @@ func (a *apexBundle) androidMkForType(apexType apexPackaging) android.AndroidMkD
				if len(a.externalDeps) > 0 {
					fmt.Fprintln(w, "LOCAL_REQUIRED_MODULES +=", strings.Join(a.externalDeps, " "))
				}
				if a.prebuiltFileToDelete != "" {
					fmt.Fprintln(w, "LOCAL_POST_INSTALL_CMD :=", "rm -rf "+
						filepath.Join("$(OUT_DIR)", a.installDir.RelPathString(), a.prebuiltFileToDelete))
				}
				fmt.Fprintln(w, "include $(BUILD_PREBUILT)")

				if apexType == imageApex {
@@ -1517,6 +1529,10 @@ func (p *Prebuilt) DepsMutator(ctx android.BottomUpMutatorContext) {
	p.properties.Source = src
}

func (p *Prebuilt) isForceDisabled() bool {
	return p.properties.ForceDisable
}

func (p *Prebuilt) OutputFiles(tag string) (android.Paths, error) {
	switch tag {
	case "":