From 8f75585b375624c6e72599bc4366f1d636a4a475 Mon Sep 17 00:00:00 2001 From: Joe Onorato Date: Fri, 25 Aug 2023 20:23:32 -0700 Subject: [PATCH] Add aconfig annotations for java_aconfig_library Test: m Bug: 289087078 Change-Id: I860b91f984b2f2c596360490337fb25a4df7a988 --- aconfig/java_aconfig_library.go | 3 +++ java/generated_java_library.go | 21 +++++++++++++++++++++ java/testing.go | 2 ++ 3 files changed, 26 insertions(+) diff --git a/aconfig/java_aconfig_library.go b/aconfig/java_aconfig_library.go index 53f8bd1ba..4db0ef794 100644 --- a/aconfig/java_aconfig_library.go +++ b/aconfig/java_aconfig_library.go @@ -52,6 +52,9 @@ func (callbacks *JavaAconfigDeclarationsLibraryCallbacks) DepsMutator(module *ja } else { ctx.AddDependency(ctx.Module(), declarationsTag, declarations) } + + // Add aconfig-annotations-lib as a dependency for the optimization / code stripping annotations + module.AddSharedLibrary("aconfig-annotations-lib") } func (callbacks *JavaAconfigDeclarationsLibraryCallbacks) GenerateSourceJarBuildActions(module *java.GeneratedJavaLibraryModule, ctx android.ModuleContext) android.Path { diff --git a/java/generated_java_library.go b/java/generated_java_library.go index 1cab6acc4..578237e3b 100644 --- a/java/generated_java_library.go +++ b/java/generated_java_library.go @@ -22,6 +22,10 @@ type GeneratedJavaLibraryModule struct { Library callbacks GeneratedJavaLibraryCallbacks moduleName string + + // true if we've already called DepsMutator. Can't call AddLibrary or AddSharedLibrary + // after DepsMutator. + depsMutatorDone bool } type GeneratedJavaLibraryCallbacks interface { @@ -59,8 +63,25 @@ func GeneratedJavaLibraryModuleFactory(moduleName string, callbacks GeneratedJav return module } +// Add a java shared library as a dependency, as if they had said `libs: [ "name" ]` +func (module *GeneratedJavaLibraryModule) AddSharedLibrary(name string) { + if module.depsMutatorDone { + panic("GeneratedJavaLibraryModule.AddLibrary called after DepsMutator") + } + module.Library.properties.Libs = append(module.Library.properties.Libs, name) +} + +// Add a java shared library as a dependency, as if they had said `libs: [ "name" ]` +func (module *GeneratedJavaLibraryModule) AddStaticLibrary(name string) { + if module.depsMutatorDone { + panic("GeneratedJavaLibraryModule.AddStaticLibrary called after DepsMutator") + } + module.Library.properties.Static_libs = append(module.Library.properties.Static_libs, name) +} + func (module *GeneratedJavaLibraryModule) DepsMutator(ctx android.BottomUpMutatorContext) { module.callbacks.DepsMutator(module, ctx) + module.depsMutatorDone = true module.Library.DepsMutator(ctx) } diff --git a/java/testing.go b/java/testing.go index 3a238d76f..7f6ee57d3 100644 --- a/java/testing.go +++ b/java/testing.go @@ -385,6 +385,8 @@ func gatherRequiredDepsForTest() string { "kotlin-stdlib-jdk8", "kotlin-annotations", "stub-annotations", + + "aconfig-annotations-lib", } for _, extra := range extraModules {