Merge "Delete prebuilt APEXes when installing source-built APEXes"
am: a822256e15
Change-Id: I576969455e028010da6631f06010fd6369c4b589
This commit is contained in:
commit
fb45ee3d1e
2 changed files with 19 additions and 3 deletions
|
@ -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
apex/apex.go
16
apex/apex.go
|
@ -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 "":
|
||||
|
|
Loading…
Reference in a new issue