Move installation rules of dexpreopt'd apex systemserver jars to soong
This will eventually allow us to build devices by skipping `katiBuild` and moving straight to `katiPackaging`. Implementation details - Replace ctx.PackageFile with ctx.InstallFile. These makes these rules available to both make and soong packaging systems. This will be done inside d.dexpreopt function - Add InstallDepNeeded on the dependency tags in this chain (apex --> sscp_fragment --> (java_library|java_sdk_library)). This is necessary for the soong packaging system. - Remove `LOCAL_SOONG_INSTALLED_MODULE=""`. A non-empty string ensures that kati honors the installation rules generated by soong. Bug: 355509400 Test: lunch aosp_cf_x86_64_phone-trunk_staging-userdebug (mainline source) Test: lunch cf_x86_64_only_phone-ap3a-userdebug (mainline prebuilts) (no diff in system_intermediates/file_list.txt in both cases) Change-Id: I190a919e9480e7d9981a6b9b96a50d9c33ceea02
This commit is contained in:
@@ -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)
|
||||
|
Reference in New Issue
Block a user