Merge "Support default-permission in aconfig_declarations" into main am: 1f82aea323 am: e1d9d9e633 am: f2f2ad86d0 am: 9f5eefc1cb

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2704693

Change-Id: I0cac10601c62e8ee7202453a27bca0503097b249
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Zhi Dou
2023-08-14 17:12:07 +00:00
committed by Automerger Merge Worker
4 changed files with 25 additions and 5 deletions

View File

@@ -97,6 +97,15 @@ func joinAndPrefix(prefix string, values []string) string {
return sb.String()
}
func optionalVariable(prefix string, value string) string {
var sb strings.Builder
if value != "" {
sb.WriteString(prefix)
sb.WriteString(value)
}
return sb.String()
}
// Provider published by aconfig_value_set
type declarationsProviderData struct {
Package string
@@ -124,15 +133,17 @@ func (module *DeclarationsModule) GenerateAndroidBuildActions(ctx android.Module
// Intermediate format
inputFiles := android.PathsForModuleSrc(ctx, module.properties.Srcs)
intermediatePath := android.PathForModuleOut(ctx, "intermediate.pb")
defaultPermission := ctx.Config().ReleaseAconfigFlagDefaultPermission()
ctx.Build(pctx, android.BuildParams{
Rule: aconfigRule,
Output: intermediatePath,
Description: "aconfig_declarations",
Args: map[string]string{
"release_version": ctx.Config().ReleaseVersion(),
"package": module.properties.Package,
"declarations": android.JoinPathsWithPrefix(inputFiles, "--declarations "),
"values": joinAndPrefix(" --values ", module.properties.Values),
"release_version": ctx.Config().ReleaseVersion(),
"package": module.properties.Package,
"declarations": android.JoinPathsWithPrefix(inputFiles, "--declarations "),
"values": joinAndPrefix(" --values ", module.properties.Values),
"default-permission": optionalVariable(" --default-permission ", defaultPermission),
},
})

View File

@@ -30,6 +30,7 @@ var (
` --package ${package}` +
` ${declarations}` +
` ${values}` +
` ${default-permission}` +
` --cache ${out}.tmp` +
` && ( if cmp -s ${out}.tmp ${out} ; then rm ${out}.tmp ; else mv ${out}.tmp ${out} ; fi )`,
// ` --build-id ${release_version}` +
@@ -37,7 +38,7 @@ var (
"${aconfig}",
},
Restat: true,
}, "release_version", "package", "declarations", "values")
}, "release_version", "package", "declarations", "values", "default-permission")
// For java_aconfig_library: Generate java file
javaRule = pctx.AndroidStaticRule("java_aconfig_library",

View File

@@ -206,6 +206,12 @@ func (c Config) ReleaseAconfigValueSets() []string {
return c.config.productVariables.ReleaseAconfigValueSets
}
// The flag default permission value passed to aconfig
// derived from RELEASE_ACONFIG_FLAG_DEFAULT_PERMISSION
func (c Config) ReleaseAconfigFlagDefaultPermission() string {
return c.config.productVariables.ReleaseAconfigFlagDefaultPermission
}
// A DeviceConfig object represents the configuration for a particular device
// being built. For now there will only be one of these, but in the future there
// may be multiple devices being built.

View File

@@ -482,6 +482,8 @@ type ProductVariables struct {
ReleaseVersion string `json:",omitempty"`
ReleaseAconfigValueSets []string `json:",omitempty"`
ReleaseAconfigFlagDefaultPermission string `json:",omitempty"`
KeepVndk *bool `json:",omitempty"`
}