Loading aconfig/aconfig_declarations.go +1 −64 Original line number Diff line number Diff line Loading @@ -112,24 +112,6 @@ func optionalVariable(prefix string, value string) string { return sb.String() } // Provider published by aconfig_value_set type DeclarationsProviderData struct { Package string Container string IntermediateCacheOutputPath android.WritablePath IntermediateDumpOutputPath android.WritablePath } var DeclarationsProviderKey = blueprint.NewProvider[DeclarationsProviderData]() // This is used to collect the aconfig declarations info on the transitive closure, // the data is keyed on the container. type TransitiveDeclarationsInfo struct { AconfigFiles map[string]android.Paths } var TransitiveDeclarationsInfoProvider = blueprint.NewProvider[TransitiveDeclarationsInfo]() func (module *DeclarationsModule) GenerateAndroidBuildActions(ctx android.ModuleContext) { // Get the values that came from the global RELEASE_ACONFIG_VALUE_SETS flag valuesFiles := make([]android.Path, 0) Loading Loading @@ -174,7 +156,7 @@ func (module *DeclarationsModule) GenerateAndroidBuildActions(ctx android.Module Description: "aconfig_text", }) android.SetProvider(ctx, DeclarationsProviderKey, DeclarationsProviderData{ android.SetProvider(ctx, android.AconfigDeclarationsProviderKey, android.AconfigDeclarationsProviderData{ Package: module.properties.Package, Container: module.properties.Container, IntermediateCacheOutputPath: intermediateCacheFilePath, Loading @@ -182,51 +164,6 @@ func (module *DeclarationsModule) GenerateAndroidBuildActions(ctx android.Module }) } func CollectDependencyAconfigFiles(ctx android.ModuleContext, mergedAconfigFiles *map[string]android.Paths) { if *mergedAconfigFiles == nil { *mergedAconfigFiles = make(map[string]android.Paths) } ctx.VisitDirectDeps(func(module android.Module) { if dep, _ := android.OtherModuleProvider(ctx, module, DeclarationsProviderKey); dep.IntermediateCacheOutputPath != nil { (*mergedAconfigFiles)[dep.Container] = append((*mergedAconfigFiles)[dep.Container], dep.IntermediateCacheOutputPath) return } if dep, _ := android.OtherModuleProvider(ctx, module, TransitiveDeclarationsInfoProvider); len(dep.AconfigFiles) > 0 { for container, v := range dep.AconfigFiles { (*mergedAconfigFiles)[container] = append((*mergedAconfigFiles)[container], v...) } } }) for container, aconfigFiles := range *mergedAconfigFiles { (*mergedAconfigFiles)[container] = mergeAconfigFiles(ctx, aconfigFiles) } android.SetProvider(ctx, TransitiveDeclarationsInfoProvider, TransitiveDeclarationsInfo{ AconfigFiles: *mergedAconfigFiles, }) } func mergeAconfigFiles(ctx android.ModuleContext, inputs android.Paths) android.Paths { inputs = android.LastUniquePaths(inputs) if len(inputs) == 1 { return android.Paths{inputs[0]} } output := android.PathForModuleOut(ctx, "aconfig_merged.pb") ctx.Build(pctx, android.BuildParams{ Rule: mergeAconfigFilesRule, Description: "merge aconfig files", Inputs: inputs, Output: output, Args: map[string]string{ "flags": android.JoinWithPrefix(inputs.Strings(), "--cache "), }, }) return android.Paths{output} } func SetAconfigFileMkEntries(m *android.ModuleBase, entries *android.AndroidMkEntries, aconfigFiles map[string]android.Paths) { // TODO(b/311155208): The default container here should be system. Loading aconfig/aconfig_declarations_test.go +1 −1 Original line number Diff line number Diff line Loading @@ -38,7 +38,7 @@ func TestAconfigDeclarations(t *testing.T) { module := result.ModuleForTests("module_name", "").Module().(*DeclarationsModule) // Check that the provider has the right contents depData, _ := android.SingletonModuleProvider(result, module, DeclarationsProviderKey) depData, _ := android.SingletonModuleProvider(result, module, android.AconfigDeclarationsProviderKey) android.AssertStringEquals(t, "package", depData.Package, "com.example.package") android.AssertStringEquals(t, "container", depData.Container, "com.android.foo") if !strings.HasSuffix(depData.IntermediateCacheOutputPath.String(), "/intermediate.pb") { Loading aconfig/all_aconfig_declarations.go +1 −1 Original line number Diff line number Diff line Loading @@ -37,7 +37,7 @@ func (this *allAconfigDeclarationsSingleton) GenerateBuildActions(ctx android.Si // Find all of the aconfig_declarations modules var cacheFiles android.Paths ctx.VisitAllModules(func(module android.Module) { decl, ok := android.SingletonModuleProvider(ctx, module, DeclarationsProviderKey) decl, ok := android.SingletonModuleProvider(ctx, module, android.AconfigDeclarationsProviderKey) if !ok { return } Loading aconfig/codegen/cc_aconfig_library.go +2 −3 Original line number Diff line number Diff line Loading @@ -15,7 +15,6 @@ package codegen import ( "android/soong/aconfig" "android/soong/android" "android/soong/cc" Loading Loading @@ -92,7 +91,7 @@ func (this *CcAconfigLibraryCallbacks) GeneratorSources(ctx cc.ModuleContext) cc if len(declarationsModules) != 1 { panic(fmt.Errorf("Exactly one aconfig_declarations property required")) } declarations, _ := android.OtherModuleProvider(ctx, declarationsModules[0], aconfig.DeclarationsProviderKey) declarations, _ := android.OtherModuleProvider(ctx, declarationsModules[0], android.AconfigDeclarationsProviderKey) // Figure out the generated file paths. This has to match aconfig's codegen_cpp.rs. this.generatedDir = android.PathForModuleGen(ctx) Loading Loading @@ -122,7 +121,7 @@ func (this *CcAconfigLibraryCallbacks) GeneratorBuildActions(ctx cc.ModuleContex if len(declarationsModules) != 1 { panic(fmt.Errorf("Exactly one aconfig_declarations property required")) } declarations, _ := android.OtherModuleProvider(ctx, declarationsModules[0], aconfig.DeclarationsProviderKey) declarations, _ := android.OtherModuleProvider(ctx, declarationsModules[0], android.AconfigDeclarationsProviderKey) mode := proptools.StringDefault(this.properties.Mode, "production") if !isModeSupported(mode) { Loading aconfig/codegen/java_aconfig_library.go +1 −2 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package codegen import ( "fmt" "android/soong/aconfig" "android/soong/android" "android/soong/java" Loading Loading @@ -82,7 +81,7 @@ func (callbacks *JavaAconfigDeclarationsLibraryCallbacks) GenerateSourceJarBuild if len(declarationsModules) != 1 { panic(fmt.Errorf("Exactly one aconfig_declarations property required")) } declarations, _ := android.OtherModuleProvider(ctx, declarationsModules[0], aconfig.DeclarationsProviderKey) declarations, _ := android.OtherModuleProvider(ctx, declarationsModules[0], android.AconfigDeclarationsProviderKey) // Generate the action to build the srcjar srcJarPath := android.PathForModuleGen(ctx, ctx.ModuleName()+".srcjar") Loading Loading
aconfig/aconfig_declarations.go +1 −64 Original line number Diff line number Diff line Loading @@ -112,24 +112,6 @@ func optionalVariable(prefix string, value string) string { return sb.String() } // Provider published by aconfig_value_set type DeclarationsProviderData struct { Package string Container string IntermediateCacheOutputPath android.WritablePath IntermediateDumpOutputPath android.WritablePath } var DeclarationsProviderKey = blueprint.NewProvider[DeclarationsProviderData]() // This is used to collect the aconfig declarations info on the transitive closure, // the data is keyed on the container. type TransitiveDeclarationsInfo struct { AconfigFiles map[string]android.Paths } var TransitiveDeclarationsInfoProvider = blueprint.NewProvider[TransitiveDeclarationsInfo]() func (module *DeclarationsModule) GenerateAndroidBuildActions(ctx android.ModuleContext) { // Get the values that came from the global RELEASE_ACONFIG_VALUE_SETS flag valuesFiles := make([]android.Path, 0) Loading Loading @@ -174,7 +156,7 @@ func (module *DeclarationsModule) GenerateAndroidBuildActions(ctx android.Module Description: "aconfig_text", }) android.SetProvider(ctx, DeclarationsProviderKey, DeclarationsProviderData{ android.SetProvider(ctx, android.AconfigDeclarationsProviderKey, android.AconfigDeclarationsProviderData{ Package: module.properties.Package, Container: module.properties.Container, IntermediateCacheOutputPath: intermediateCacheFilePath, Loading @@ -182,51 +164,6 @@ func (module *DeclarationsModule) GenerateAndroidBuildActions(ctx android.Module }) } func CollectDependencyAconfigFiles(ctx android.ModuleContext, mergedAconfigFiles *map[string]android.Paths) { if *mergedAconfigFiles == nil { *mergedAconfigFiles = make(map[string]android.Paths) } ctx.VisitDirectDeps(func(module android.Module) { if dep, _ := android.OtherModuleProvider(ctx, module, DeclarationsProviderKey); dep.IntermediateCacheOutputPath != nil { (*mergedAconfigFiles)[dep.Container] = append((*mergedAconfigFiles)[dep.Container], dep.IntermediateCacheOutputPath) return } if dep, _ := android.OtherModuleProvider(ctx, module, TransitiveDeclarationsInfoProvider); len(dep.AconfigFiles) > 0 { for container, v := range dep.AconfigFiles { (*mergedAconfigFiles)[container] = append((*mergedAconfigFiles)[container], v...) } } }) for container, aconfigFiles := range *mergedAconfigFiles { (*mergedAconfigFiles)[container] = mergeAconfigFiles(ctx, aconfigFiles) } android.SetProvider(ctx, TransitiveDeclarationsInfoProvider, TransitiveDeclarationsInfo{ AconfigFiles: *mergedAconfigFiles, }) } func mergeAconfigFiles(ctx android.ModuleContext, inputs android.Paths) android.Paths { inputs = android.LastUniquePaths(inputs) if len(inputs) == 1 { return android.Paths{inputs[0]} } output := android.PathForModuleOut(ctx, "aconfig_merged.pb") ctx.Build(pctx, android.BuildParams{ Rule: mergeAconfigFilesRule, Description: "merge aconfig files", Inputs: inputs, Output: output, Args: map[string]string{ "flags": android.JoinWithPrefix(inputs.Strings(), "--cache "), }, }) return android.Paths{output} } func SetAconfigFileMkEntries(m *android.ModuleBase, entries *android.AndroidMkEntries, aconfigFiles map[string]android.Paths) { // TODO(b/311155208): The default container here should be system. Loading
aconfig/aconfig_declarations_test.go +1 −1 Original line number Diff line number Diff line Loading @@ -38,7 +38,7 @@ func TestAconfigDeclarations(t *testing.T) { module := result.ModuleForTests("module_name", "").Module().(*DeclarationsModule) // Check that the provider has the right contents depData, _ := android.SingletonModuleProvider(result, module, DeclarationsProviderKey) depData, _ := android.SingletonModuleProvider(result, module, android.AconfigDeclarationsProviderKey) android.AssertStringEquals(t, "package", depData.Package, "com.example.package") android.AssertStringEquals(t, "container", depData.Container, "com.android.foo") if !strings.HasSuffix(depData.IntermediateCacheOutputPath.String(), "/intermediate.pb") { Loading
aconfig/all_aconfig_declarations.go +1 −1 Original line number Diff line number Diff line Loading @@ -37,7 +37,7 @@ func (this *allAconfigDeclarationsSingleton) GenerateBuildActions(ctx android.Si // Find all of the aconfig_declarations modules var cacheFiles android.Paths ctx.VisitAllModules(func(module android.Module) { decl, ok := android.SingletonModuleProvider(ctx, module, DeclarationsProviderKey) decl, ok := android.SingletonModuleProvider(ctx, module, android.AconfigDeclarationsProviderKey) if !ok { return } Loading
aconfig/codegen/cc_aconfig_library.go +2 −3 Original line number Diff line number Diff line Loading @@ -15,7 +15,6 @@ package codegen import ( "android/soong/aconfig" "android/soong/android" "android/soong/cc" Loading Loading @@ -92,7 +91,7 @@ func (this *CcAconfigLibraryCallbacks) GeneratorSources(ctx cc.ModuleContext) cc if len(declarationsModules) != 1 { panic(fmt.Errorf("Exactly one aconfig_declarations property required")) } declarations, _ := android.OtherModuleProvider(ctx, declarationsModules[0], aconfig.DeclarationsProviderKey) declarations, _ := android.OtherModuleProvider(ctx, declarationsModules[0], android.AconfigDeclarationsProviderKey) // Figure out the generated file paths. This has to match aconfig's codegen_cpp.rs. this.generatedDir = android.PathForModuleGen(ctx) Loading Loading @@ -122,7 +121,7 @@ func (this *CcAconfigLibraryCallbacks) GeneratorBuildActions(ctx cc.ModuleContex if len(declarationsModules) != 1 { panic(fmt.Errorf("Exactly one aconfig_declarations property required")) } declarations, _ := android.OtherModuleProvider(ctx, declarationsModules[0], aconfig.DeclarationsProviderKey) declarations, _ := android.OtherModuleProvider(ctx, declarationsModules[0], android.AconfigDeclarationsProviderKey) mode := proptools.StringDefault(this.properties.Mode, "production") if !isModeSupported(mode) { Loading
aconfig/codegen/java_aconfig_library.go +1 −2 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package codegen import ( "fmt" "android/soong/aconfig" "android/soong/android" "android/soong/java" Loading Loading @@ -82,7 +81,7 @@ func (callbacks *JavaAconfigDeclarationsLibraryCallbacks) GenerateSourceJarBuild if len(declarationsModules) != 1 { panic(fmt.Errorf("Exactly one aconfig_declarations property required")) } declarations, _ := android.OtherModuleProvider(ctx, declarationsModules[0], aconfig.DeclarationsProviderKey) declarations, _ := android.OtherModuleProvider(ctx, declarationsModules[0], android.AconfigDeclarationsProviderKey) // Generate the action to build the srcjar srcJarPath := android.PathForModuleGen(ctx, ctx.ModuleName()+".srcjar") Loading