aboutsummaryrefslogtreecommitdiff
path: root/aconfig/aconfig_declarations.go
diff options
context:
space:
mode:
Diffstat (limited to 'aconfig/aconfig_declarations.go')
-rw-r--r--aconfig/aconfig_declarations.go34
1 files changed, 21 insertions, 13 deletions
diff --git a/aconfig/aconfig_declarations.go b/aconfig/aconfig_declarations.go
index b06839831..22dba9b1a 100644
--- a/aconfig/aconfig_declarations.go
+++ b/aconfig/aconfig_declarations.go
@@ -15,12 +15,13 @@
package aconfig
import (
- "android/soong/android"
"path/filepath"
"slices"
"strconv"
"strings"
+ "android/soong/android"
+
"github.com/google/blueprint"
)
@@ -144,8 +145,10 @@ func (module *DeclarationsModule) GenerateAndroidBuildActions(ctx android.Module
values := make(map[string][]string)
valuesFiles := make(map[string][]android.Path, 0)
- providerData := android.AconfigReleaseDeclarationsProviderData{}
- ctx.VisitDirectDeps(func(dep android.Module) {
+ providerData := android.AconfigReleaseDeclarationsProviderData{
+ Data: map[string]android.AconfigDeclarationsProviderData{},
+ }
+ ctx.VisitDirectDepsProxy(func(dep android.ModuleProxy) {
if depData, ok := android.OtherModuleProvider(ctx, dep, valueSetProviderKey); ok {
depTag := ctx.OtherModuleDependencyTag(dep)
for _, config := range configs {
@@ -170,7 +173,7 @@ func (module *DeclarationsModule) GenerateAndroidBuildActions(ctx android.Module
// Intermediate format
declarationFiles := android.PathsForModuleSrc(ctx, module.properties.Srcs)
- intermediateCacheFilePath := android.PathForModuleOut(ctx, assembleFileName(config, "intermediate.pb"))
+ intermediateCacheFilePath := android.PathForModuleOut(ctx, assembleFileName(config, "aconfig-cache.pb"))
var defaultPermission string
defaultPermission = ctx.Config().ReleaseAconfigFlagDefaultPermission()
if config != "" {
@@ -178,6 +181,8 @@ func (module *DeclarationsModule) GenerateAndroidBuildActions(ctx android.Module
defaultPermission = confPerm
}
}
+
+ forceReadOnly := ctx.Config().GetBuildFlagBool("RELEASE_CONFIG_FORCE_READ_ONLY")
var allowReadWrite bool
if requireAllReadOnly, ok := ctx.Config().GetBuildFlag("RELEASE_ACONFIG_REQUIRE_ALL_READ_ONLY"); ok {
// The build flag (RELEASE_ACONFIG_REQUIRE_ALL_READ_ONLY) is the negation of the aconfig flag
@@ -188,13 +193,16 @@ func (module *DeclarationsModule) GenerateAndroidBuildActions(ctx android.Module
inputFiles := make([]android.Path, len(declarationFiles))
copy(inputFiles, declarationFiles)
inputFiles = append(inputFiles, valuesFiles[config]...)
+ mainlineBetaNamespaceConfig := ctx.Config().ReleaseMainlineBetaNamespaceConfig()
args := map[string]string{
- "release_version": ctx.Config().ReleaseVersion(),
- "package": module.properties.Package,
- "declarations": android.JoinPathsWithPrefix(declarationFiles, "--declarations "),
- "values": joinAndPrefix(" --values ", values[config]),
- "default-permission": optionalVariable(" --default-permission ", defaultPermission),
- "allow-read-write": optionalVariable(" --allow-read-write ", strconv.FormatBool(allowReadWrite)),
+ "release_version": ctx.Config().ReleaseVersion(),
+ "package": module.properties.Package,
+ "declarations": android.JoinPathsWithPrefix(declarationFiles, "--declarations "),
+ "values": joinAndPrefix(" --values ", values[config]),
+ "default-permission": optionalVariable(" --default-permission ", defaultPermission),
+ "allow-read-write": optionalVariable(" --allow-read-write ", strconv.FormatBool(allowReadWrite)),
+ "mainline-beta-namespace-config": optionalVariable(" --mainline-beta-namespace-config ", mainlineBetaNamespaceConfig),
+ "force-read-only": optionalVariable(" --force-read-only ", strconv.FormatBool(forceReadOnly)),
}
if len(module.properties.Container) > 0 {
args["container"] = "--container " + module.properties.Container
@@ -207,7 +215,7 @@ func (module *DeclarationsModule) GenerateAndroidBuildActions(ctx android.Module
Args: args,
})
- intermediateDumpFilePath := android.PathForModuleOut(ctx, assembleFileName(config, "intermediate.txt"))
+ intermediateDumpFilePath := android.PathForModuleOut(ctx, assembleFileName(config, "aconfig-flags.txt"))
ctx.Build(pctx, android.BuildParams{
Rule: aconfigTextRule,
Output: intermediateDumpFilePath,
@@ -215,7 +223,7 @@ func (module *DeclarationsModule) GenerateAndroidBuildActions(ctx android.Module
Description: "aconfig_text",
})
- providerData[config] = android.AconfigDeclarationsProviderData{
+ providerData.Data[config] = android.AconfigDeclarationsProviderData{
Package: module.properties.Package,
Container: module.properties.Container,
Exportable: module.properties.Exportable,
@@ -223,7 +231,7 @@ func (module *DeclarationsModule) GenerateAndroidBuildActions(ctx android.Module
IntermediateDumpOutputPath: intermediateDumpFilePath,
}
}
- android.SetProvider(ctx, android.AconfigDeclarationsProviderKey, providerData[""])
+ android.SetProvider(ctx, android.AconfigDeclarationsProviderKey, providerData.Data[""])
android.SetProvider(ctx, android.AconfigReleaseDeclarationsProviderKey, providerData)
}