Merge "Move installation rules of dexpreopt'd apex systemserver jars to soong" into main

This commit is contained in:
Spandan Das
2024-08-26 22:27:57 +00:00
committed by Gerrit Code Review
4 changed files with 25 additions and 20 deletions

View File

@@ -88,18 +88,11 @@ func (install dexpreopterInstall) ToMakeEntries() android.AndroidMkEntries {
entries.SetString("LOCAL_MODULE_PATH", install.installDirOnDevice.String())
entries.SetString("LOCAL_INSTALLED_MODULE_STEM", install.installFileOnDevice)
entries.SetString("LOCAL_NOT_AVAILABLE_FOR_PLATFORM", "false")
// Unset LOCAL_SOONG_INSTALLED_MODULE so that this does not default to the primary .apex file
// Without this, installation of the dexpreopt artifacts get skipped
entries.SetString("LOCAL_SOONG_INSTALLED_MODULE", "")
},
},
}
}
func (install dexpreopterInstall) PackageFile(ctx android.ModuleContext) android.PackagingSpec {
return ctx.PackageFile(install.installDirOnDevice, install.installFileOnDevice, install.outputPathOnHost)
}
type Dexpreopter struct {
dexpreopter
}
@@ -583,13 +576,16 @@ func (d *dexpreopter) dexpreopt(ctx android.ModuleContext, libName string, dexJa
// Preopting of boot classpath jars in the ART APEX are handled in
// java/dexpreopt_bootjars.go, and other APEX jars are not preopted.
// The installs will be handled by Make as sub-modules of the java library.
d.builtInstalledForApex = append(d.builtInstalledForApex, dexpreopterInstall{
di := dexpreopterInstall{
name: arch + "-" + installBase,
moduleName: libName,
outputPathOnHost: install.From,
installDirOnDevice: installPath,
installFileOnDevice: installBase,
})
}
ctx.InstallFile(di.installDirOnDevice, di.installFileOnDevice, di.outputPathOnHost)
d.builtInstalledForApex = append(d.builtInstalledForApex, di)
}
} else if !d.preventInstall {
ctx.InstallFile(installPath, installBase, install.From)

View File

@@ -216,6 +216,11 @@ func IsSystemServerClasspathFragmentContentDepTag(tag blueprint.DependencyTag) b
return tag == systemServerClasspathFragmentContentDepTag
}
// The dexpreopt artifacts of apex system server jars are installed onto system image.
func (s systemServerClasspathFragmentContentDependencyTag) InstallDepNeeded() bool {
return true
}
func (s *SystemServerClasspathModule) ComponentDepsMutator(ctx android.BottomUpMutatorContext) {
module := ctx.Module()
_, isSourceModule := module.(*SystemServerClasspathModule)