Add erofs compressor information to soong-generated partitions
Also change set a default compressor in the filesystem module type
to match make.
Bug: 381120092
Test: m out/soong/.intermediates/build/soong/fsgen/aosp_cf_x86_64_phone_generated_system_image/android_common/prop, diff with make
Change-Id: Ic2b57f8f5e566d43a4aa52dd37574325d6d63c78
diff --git a/fsgen/filesystem_creator.go b/fsgen/filesystem_creator.go
index ec52f61..cd29dfd 100644
--- a/fsgen/filesystem_creator.go
+++ b/fsgen/filesystem_creator.go
@@ -69,6 +69,7 @@
avbpubkeyGenerated := createAvbpubkeyModule(ctx)
createFsGenState(ctx, generatedPrebuiltEtcModuleNames, avbpubkeyGenerated)
module.createAvbKeyFilegroups(ctx)
+ module.createMiscFilegroups(ctx)
module.createInternalModules(ctx)
})
@@ -506,6 +507,29 @@
}
}
+// Creates filegroups for miscellaneous other files
+func (f *filesystemCreator) createMiscFilegroups(ctx android.LoadHookContext) {
+ partitionVars := ctx.Config().ProductVariables().PartitionVarsForSoongMigrationOnlyDoNotUse
+
+ if partitionVars.BoardErofsCompressorHints != "" {
+ dir := filepath.Dir(partitionVars.BoardErofsCompressorHints)
+ base := filepath.Base(partitionVars.BoardErofsCompressorHints)
+ ctx.CreateModuleInDirectory(
+ android.FileGroupFactory,
+ dir,
+ &struct {
+ Name *string
+ Srcs []string
+ Visibility []string
+ }{
+ Name: proptools.StringPtr("soong_generated_board_erofs_compress_hints_filegroup"),
+ Srcs: []string{base},
+ Visibility: []string{"//visibility:public"},
+ },
+ )
+ }
+}
+
// createPrebuiltKernelModules creates `prebuilt_kernel_modules`. These modules will be added to deps of the
// autogenerated *_dlkm filsystem modules. Each _dlkm partition should have a single prebuilt_kernel_modules dependency.
// This ensures that the depmod artifacts (modules.* installed in /lib/modules/) are generated with a complete view.
@@ -705,6 +729,15 @@
return nil, false
}
+ if *fsProps.Type == "erofs" {
+ if partitionVars.BoardErofsCompressor != "" {
+ fsProps.Erofs.Compressor = proptools.StringPtr(partitionVars.BoardErofsCompressor)
+ }
+ if partitionVars.BoardErofsCompressorHints != "" {
+ fsProps.Erofs.Compress_hints = proptools.StringPtr(":soong_generated_board_erofs_compress_hints_filegroup")
+ }
+ }
+
// Don't build this module on checkbuilds, the soong-built partitions are still in-progress
// and sometimes don't build.
fsProps.Unchecked_module = proptools.BoolPtr(true)