diff --git a/cc/snapshot_prebuilt.go b/cc/snapshot_prebuilt.go index d9b0bbe47..253a11bb6 100644 --- a/cc/snapshot_prebuilt.go +++ b/cc/snapshot_prebuilt.go @@ -66,7 +66,7 @@ func (recoverySnapshotImage) moduleNameSuffix() string { // Override existing vendor and recovery snapshot for cc module specific extra functions var VendorSnapshotImageSingleton vendorSnapshotImage = vendorSnapshotImage{&snapshot.VendorSnapshotImageSingleton} -var recoverySnapshotImageSingleton recoverySnapshotImage = recoverySnapshotImage{&snapshot.RecoverySnapshotImageSingleton} +var RecoverySnapshotImageSingleton recoverySnapshotImage = recoverySnapshotImage{&snapshot.RecoverySnapshotImageSingleton} func RegisterVendorSnapshotModules(ctx android.RegistrationContext) { ctx.RegisterModuleType("vendor_snapshot", vendorSnapshotFactory) @@ -231,7 +231,7 @@ func vendorSnapshotFactory() android.Module { } func recoverySnapshotFactory() android.Module { - return snapshotFactory(recoverySnapshotImageSingleton) + return snapshotFactory(RecoverySnapshotImageSingleton) } func snapshotFactory(image SnapshotImage) android.Module { @@ -326,7 +326,7 @@ func (p *BaseSnapshotDecorator) SetSnapshotAndroidMkSuffix(ctx android.ModuleCon return } - images := []SnapshotImage{VendorSnapshotImageSingleton, recoverySnapshotImageSingleton} + images := []SnapshotImage{VendorSnapshotImageSingleton, RecoverySnapshotImageSingleton} for _, image := range images { if p.Image == image { @@ -583,7 +583,7 @@ func VendorSnapshotSharedFactory() android.Module { // overrides the recovery variant of the cc shared library with the same name, if BOARD_VNDK_VERSION // is set. func RecoverySnapshotSharedFactory() android.Module { - module, prebuilt := snapshotLibraryFactory(recoverySnapshotImageSingleton, SnapshotSharedSuffix) + module, prebuilt := snapshotLibraryFactory(RecoverySnapshotImageSingleton, SnapshotSharedSuffix) prebuilt.libraryDecorator.BuildOnlyShared() return module.Init() } @@ -603,7 +603,7 @@ func VendorSnapshotStaticFactory() android.Module { // overrides the recovery variant of the cc static library with the same name, if BOARD_VNDK_VERSION // is set. func RecoverySnapshotStaticFactory() android.Module { - module, prebuilt := snapshotLibraryFactory(recoverySnapshotImageSingleton, SnapshotStaticSuffix) + module, prebuilt := snapshotLibraryFactory(RecoverySnapshotImageSingleton, SnapshotStaticSuffix) prebuilt.libraryDecorator.BuildOnlyStatic() return module.Init() } @@ -623,7 +623,7 @@ func VendorSnapshotHeaderFactory() android.Module { // overrides the recovery variant of the cc header library with the same name, if BOARD_VNDK_VERSION // is set. func RecoverySnapshotHeaderFactory() android.Module { - module, prebuilt := snapshotLibraryFactory(recoverySnapshotImageSingleton, snapshotHeaderSuffix) + module, prebuilt := snapshotLibraryFactory(RecoverySnapshotImageSingleton, snapshotHeaderSuffix) prebuilt.libraryDecorator.HeaderOnly() return module.Init() } @@ -698,7 +698,7 @@ func VendorSnapshotBinaryFactory() android.Module { // development/vendor_snapshot/update.py. As a part of recovery snapshot, recovery_snapshot_binary // overrides the recovery variant of the cc binary with the same name, if BOARD_VNDK_VERSION is set. func RecoverySnapshotBinaryFactory() android.Module { - return snapshotBinaryFactory(recoverySnapshotImageSingleton, snapshotBinarySuffix) + return snapshotBinaryFactory(RecoverySnapshotImageSingleton, snapshotBinarySuffix) } func snapshotBinaryFactory(image SnapshotImage, moduleSuffix string) android.Module { @@ -800,7 +800,7 @@ func RecoverySnapshotObjectFactory() android.Module { } module.linker = prebuilt - prebuilt.Init(module, recoverySnapshotImageSingleton, snapshotObjectSuffix) + prebuilt.Init(module, RecoverySnapshotImageSingleton, snapshotObjectSuffix) module.AddProperties(&prebuilt.properties) return module.Init() } diff --git a/cc/snapshot_utils.go b/cc/snapshot_utils.go index 24abcce55..de50ef50f 100644 --- a/cc/snapshot_utils.go +++ b/cc/snapshot_utils.go @@ -113,7 +113,7 @@ func ShouldCollectHeadersForSnapshot(ctx android.ModuleContext, m LinkableInterf return ctx.Config().VndkSnapshotBuildArtifacts() } - for _, image := range []SnapshotImage{VendorSnapshotImageSingleton, recoverySnapshotImageSingleton} { + for _, image := range []SnapshotImage{VendorSnapshotImageSingleton, RecoverySnapshotImageSingleton} { if isSnapshotAware(ctx.DeviceConfig(), m, image.IsProprietaryPath(ctx.ModuleDir(), ctx.DeviceConfig()), apexInfo, image) { return true } diff --git a/rust/snapshot_prebuilt.go b/rust/snapshot_prebuilt.go index 79eaab382..b4188eecf 100644 --- a/rust/snapshot_prebuilt.go +++ b/rust/snapshot_prebuilt.go @@ -44,6 +44,8 @@ func init() { func registerRustSnapshotModules(ctx android.RegistrationContext) { cc.VendorSnapshotImageSingleton.RegisterAdditionalModule(ctx, "vendor_snapshot_rlib", VendorSnapshotRlibFactory) + cc.RecoverySnapshotImageSingleton.RegisterAdditionalModule(ctx, + "recovery_snapshot_rlib", RecoverySnapshotRlibFactory) } func snapshotLibraryFactory(image cc.SnapshotImage, moduleSuffix string) (*Module, *snapshotLibraryDecorator) { @@ -104,6 +106,13 @@ func VendorSnapshotRlibFactory() android.Module { return module.Init() } +func RecoverySnapshotRlibFactory() android.Module { + module, prebuilt := snapshotLibraryFactory(cc.RecoverySnapshotImageSingleton, cc.SnapshotRlibSuffix) + prebuilt.libraryDecorator.BuildOnlyRlib() + prebuilt.libraryDecorator.setNoStdlibs() + return module.Init() +} + func (library *snapshotLibraryDecorator) MatchesWithDevice(config android.DeviceConfig) bool { arches := config.Arches() if len(arches) == 0 || arches[0].ArchType.String() != library.Arch() { diff --git a/snapshot/recovery_snapshot.go b/snapshot/recovery_snapshot.go index 9b3919c34..f1e31ca03 100644 --- a/snapshot/recovery_snapshot.go +++ b/snapshot/recovery_snapshot.go @@ -71,6 +71,10 @@ func (RecoverySnapshotImage) Init(ctx android.RegistrationContext) { ctx.RegisterSingletonType("recovery-snapshot", RecoverySnapshotSingleton) } +func (RecoverySnapshotImage) RegisterAdditionalModule(ctx android.RegistrationContext, name string, factory android.ModuleFactory) { + ctx.RegisterModuleType(name, factory) +} + func (RecoverySnapshotImage) shouldGenerateSnapshot(ctx android.SingletonContext) bool { // RECOVERY_SNAPSHOT_VERSION must be set to 'current' in order to generate a // snapshot.