package dexpreopt import "android/soong/android" func init() { android.InitRegistrationContext.RegisterSingletonType("system_server_zip_singleton", systemServerZipSingletonFactory) } func systemServerZipSingletonFactory() android.Singleton { return &systemServerZipSingleton{} } type systemServerZipSingleton struct{} func (s *systemServerZipSingleton) GenerateBuildActions(ctx android.SingletonContext) { global := GetGlobalConfig(ctx) if global.DisablePreopt || global.OnlyPreoptArtBootImage { return } systemServerDexjarsDir := android.PathForOutput(ctx, SystemServerDexjarsDir) out := android.PathForOutput(ctx, "system_server.zip") builder := android.NewRuleBuilder(pctx, ctx) cmd := builder.Command().BuiltTool("soong_zip"). FlagWithOutput("-o ", out). FlagWithArg("-C ", systemServerDexjarsDir.String()) for i := 0; i < global.SystemServerJars.Len(); i++ { jar := global.SystemServerJars.Jar(i) + ".jar" cmd.FlagWithInput("-f ", systemServerDexjarsDir.Join(ctx, jar)) } for i := 0; i < global.StandaloneSystemServerJars.Len(); i++ { jar := global.StandaloneSystemServerJars.Jar(i) + ".jar" cmd.FlagWithInput("-f ", systemServerDexjarsDir.Join(ctx, jar)) } for i := 0; i < global.ApexSystemServerJars.Len(); i++ { jar := global.ApexSystemServerJars.Jar(i) + ".jar" cmd.FlagWithInput("-f ", systemServerDexjarsDir.Join(ctx, jar)) } for i := 0; i < global.ApexStandaloneSystemServerJars.Len(); i++ { jar := global.ApexStandaloneSystemServerJars.Jar(i) + ".jar" cmd.FlagWithInput("-f ", systemServerDexjarsDir.Join(ctx, jar)) } builder.Build("system_server_zip", "building system_server.zip") ctx.DistForGoal("droidcore", out) }