diff --git a/rust/Android.bp b/rust/Android.bp index c5b200019..637042d45 100644 --- a/rust/Android.bp +++ b/rust/Android.bp @@ -7,6 +7,7 @@ bootstrap_go_package { pkgPath: "android/soong/rust", deps: [ "soong", + "soong-aconfig", "soong-android", "soong-bloaty", "soong-cc", diff --git a/rust/androidmk.go b/rust/androidmk.go index e02c3f619..733ffc5eb 100644 --- a/rust/androidmk.go +++ b/rust/androidmk.go @@ -66,7 +66,8 @@ func (mod *Module) AndroidMkEntries() []android.AndroidMkEntries { if mod.UseVndk() { entries.SetBool("LOCAL_USE_VNDK", true) } - + // TODO(b/311155208): The container here should be system. + entries.SetPaths("LOCAL_ACONFIG_FILES", mod.mergedAconfigFiles[""]) }, }, } diff --git a/rust/rust.go b/rust/rust.go index 3d51a1373..ddebb7599 100644 --- a/rust/rust.go +++ b/rust/rust.go @@ -26,6 +26,7 @@ import ( "github.com/google/blueprint" "github.com/google/blueprint/proptools" + "android/soong/aconfig" "android/soong/android" "android/soong/cc" cc_config "android/soong/cc/config" @@ -176,6 +177,9 @@ type Module struct { transitiveAndroidMkSharedLibs *android.DepSet[string] android.BazelModuleBase + + // Aconfig files for all transitive deps. Also exposed via TransitiveDeclarationsInfo + mergedAconfigFiles map[string]android.Paths } func (mod *Module) Header() bool { @@ -1006,6 +1010,8 @@ func (mod *Module) GenerateAndroidBuildActions(actx android.ModuleContext) { if mod.testModule { ctx.SetProvider(testing.TestModuleProviderKey, testing.TestModuleProviderData{}) } + + aconfig.CollectDependencyAconfigFiles(ctx, &mod.mergedAconfigFiles) } func (mod *Module) deps(ctx DepsContext) Deps {