summaryrefslogtreecommitdiff
path: root/java/app.go
diff options
context:
space:
mode:
author Jihoon Kang <jihoonkang@google.com> 2023-12-08 11:31:22 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-12-08 11:31:22 +0000
commit59bb904d6c7b38417059df1345da467a07f5e148 (patch)
tree6c6996e051688caacdd9c2bd9f9309f57d2261fd /java/app.go
parent8172cfb509c9c71046e66e9ee7bce51f3c67d2ed (diff)
parent1befeeb5e8684ad5aa6efc7273edaab2a89d2055 (diff)
Merge changes from topic "aconfig_dump_map" into main am: 25c187cc7d am: 1ed5d5ca20 am: 1befeeb5e8
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2854663 Change-Id: I18069b9fa74f1c72527bff397c61bc5510e7a684 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'java/app.go')
-rwxr-xr-xjava/app.go33
1 files changed, 28 insertions, 5 deletions
diff --git a/java/app.go b/java/app.go
index 0f46b4ec8..d8822aff3 100755
--- a/java/app.go
+++ b/java/app.go
@@ -22,7 +22,9 @@ import (
"path/filepath"
"strings"
+ "android/soong/aconfig"
"android/soong/testing"
+
"github.com/google/blueprint"
"github.com/google/blueprint/proptools"
@@ -170,6 +172,9 @@ type overridableAppProperties struct {
// binaries would be installed by default (in PRODUCT_PACKAGES) the other binary will be removed
// from PRODUCT_PACKAGES.
Overrides []string
+
+ // Names of aconfig_declarations modules that specify aconfig flags that the app depends on.
+ Flags_packages []string
}
type AndroidApp struct {
@@ -316,6 +321,10 @@ func (a *AndroidApp) OverridablePropertiesDepsMutator(ctx android.BottomUpMutato
`must be names of android_app_certificate modules in the form ":module"`)
}
}
+
+ for _, aconfig_declaration := range a.overridableAppProperties.Flags_packages {
+ ctx.AddDependency(ctx.Module(), aconfigDeclarationTag, aconfig_declaration)
+ }
}
func (a *AndroidTestHelperApp) GenerateAndroidBuildActions(ctx android.ModuleContext) {
@@ -500,13 +509,27 @@ func (a *AndroidApp) aaptBuildActions(ctx android.ModuleContext) {
if a.Updatable() {
a.aapt.defaultManifestVersion = android.DefaultUpdatableModuleVersion
}
+
+ var aconfigTextFilePaths android.Paths
+ ctx.VisitDirectDepsWithTag(aconfigDeclarationTag, func(dep android.Module) {
+ if provider, ok := ctx.OtherModuleProvider(dep, aconfig.DeclarationsProviderKey).(aconfig.DeclarationsProviderData); ok {
+ aconfigTextFilePaths = append(aconfigTextFilePaths, provider.IntermediateDumpOutputPath)
+ } else {
+ ctx.ModuleErrorf("Only aconfig_declarations module type is allowed for "+
+ "flags_packages property, but %s is not aconfig_declarations module type",
+ dep.Name(),
+ )
+ }
+ })
+
a.aapt.buildActions(ctx,
aaptBuildActionOptions{
- android.SdkContext(a),
- a.classLoaderContexts,
- a.usesLibraryProperties.Exclude_uses_libs,
- a.enforceDefaultTargetSdkVersion(),
- aaptLinkFlags,
+ sdkContext: android.SdkContext(a),
+ classLoaderContexts: a.classLoaderContexts,
+ excludedLibs: a.usesLibraryProperties.Exclude_uses_libs,
+ enforceDefaultTargetSdkVersion: a.enforceDefaultTargetSdkVersion(),
+ extraLinkFlags: aaptLinkFlags,
+ aconfigTextFiles: aconfigTextFilePaths,
},
)