Move the installation rules of boot images to soong am: 29207b57cf
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3200723 Change-Id: I8d99fe7855430a66f516ba3687faf51ace237c60 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -104,7 +104,6 @@ cc_genrule {
|
||||
// Instantiate the dex_bootjars singleton module.
|
||||
dex_bootjars {
|
||||
name: "dex_bootjars",
|
||||
no_full_install: true,
|
||||
}
|
||||
|
||||
// Pseudo-test that's run on checkbuilds to ensure that get_clang_version can
|
||||
|
@@ -616,10 +616,8 @@ func getModuleInstallPathInfo(ctx android.ModuleContext, fullInstallPath string)
|
||||
return installPath, relDir, installBase
|
||||
}
|
||||
|
||||
// RuleBuilder.Install() adds output-to-install copy pairs to a list for Make. To share this
|
||||
// information with PackagingSpec in soong, call PackageFile for them.
|
||||
// The install path and the target install partition of the module must be the same.
|
||||
func packageFile(ctx android.ModuleContext, install android.RuleBuilderInstall) {
|
||||
// installFile will install the file if `install` path and the target install partition are the same.
|
||||
func installFile(ctx android.ModuleContext, install android.RuleBuilderInstall) {
|
||||
installPath, relDir, name := getModuleInstallPathInfo(ctx, install.To)
|
||||
// Empty name means the install partition is not for the target image.
|
||||
// For the system image, files for "apex" and "system_other" are skipped here.
|
||||
@@ -628,7 +626,7 @@ func packageFile(ctx android.ModuleContext, install android.RuleBuilderInstall)
|
||||
// TODO(b/320196894): Files for "system_other" are skipped because soong creates the system
|
||||
// image only for now.
|
||||
if name != "" {
|
||||
ctx.PackageFile(installPath.Join(ctx, relDir), name, install.From)
|
||||
ctx.InstallFile(installPath.Join(ctx, relDir), name, install.From)
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -491,6 +491,11 @@ type dexpreoptBootJars struct {
|
||||
// Build path to a config file that Soong writes for Make (to be used in makefiles that install
|
||||
// the default boot image).
|
||||
dexpreoptConfigForMake android.WritablePath
|
||||
|
||||
// Build path to the boot framework profile.
|
||||
// This is used as the `OutputFile` in `AndroidMkEntries`.
|
||||
// A non-nil value ensures that this singleton module does not get skipped in AndroidMkEntries processing.
|
||||
bootFrameworkProfile android.WritablePath
|
||||
}
|
||||
|
||||
func (dbj *dexpreoptBootJars) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||
@@ -603,7 +608,8 @@ func (d *dexpreoptBootJars) GenerateAndroidBuildActions(ctx android.ModuleContex
|
||||
installs := generateBootImage(ctx, config)
|
||||
profileInstalls = append(profileInstalls, installs...)
|
||||
if config == d.defaultBootImage {
|
||||
_, installs := bootFrameworkProfileRule(ctx, config)
|
||||
bootProfile, installs := bootFrameworkProfileRule(ctx, config)
|
||||
d.bootFrameworkProfile = bootProfile
|
||||
profileInstalls = append(profileInstalls, installs...)
|
||||
}
|
||||
}
|
||||
@@ -613,7 +619,7 @@ func (d *dexpreoptBootJars) GenerateAndroidBuildActions(ctx android.ModuleContex
|
||||
profileLicenseMetadataFile: android.OptionalPathForPath(ctx.LicenseMetadataFile()),
|
||||
})
|
||||
for _, install := range profileInstalls {
|
||||
packageFile(ctx, install)
|
||||
installFile(ctx, install)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -939,7 +945,7 @@ func packageFileForTargetImage(ctx android.ModuleContext, image *bootImageVarian
|
||||
}
|
||||
|
||||
for _, install := range image.installs {
|
||||
packageFile(ctx, install)
|
||||
installFile(ctx, install)
|
||||
}
|
||||
|
||||
for _, install := range image.vdexInstalls {
|
||||
@@ -1231,7 +1237,7 @@ func bootImageProfileRule(ctx android.ModuleContext, image *bootImageConfig) (an
|
||||
|
||||
profile := bootImageProfileRuleCommon(ctx, image.name, image.dexPathsDeps.Paths(), image.getAnyAndroidVariant().dexLocationsDeps)
|
||||
|
||||
if image == defaultBootImageConfig(ctx) {
|
||||
if image == defaultBootImageConfig(ctx) && profile != nil {
|
||||
rule := android.NewRuleBuilder(pctx, ctx)
|
||||
rule.Install(profile, "/system/etc/boot-image.prof")
|
||||
return profile, rule.Installs()
|
||||
@@ -1377,3 +1383,12 @@ func (d *dexpreoptBootJars) MakeVars(ctx android.MakeVarsContext) {
|
||||
ctx.Strict("DEXPREOPT_IMAGE_NAMES", strings.Join(getImageNames(), " "))
|
||||
}
|
||||
}
|
||||
|
||||
// Add one of the outputs in `OutputFile`
|
||||
// This ensures that this singleton module does not get skipped when writing out/soong/Android-*.mk
|
||||
func (d *dexpreoptBootJars) AndroidMkEntries() []android.AndroidMkEntries {
|
||||
return []android.AndroidMkEntries{{
|
||||
Class: "ETC",
|
||||
OutputFile: android.OptionalPathForPath(d.bootFrameworkProfile),
|
||||
}}
|
||||
}
|
||||
|
Reference in New Issue
Block a user