diff options
Diffstat (limited to 'java/base.go')
-rw-r--r-- | java/base.go | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/java/base.go b/java/base.go index efc6a748b..3927c6194 100644 --- a/java/base.go +++ b/java/base.go @@ -122,6 +122,9 @@ type CommonProperties struct { // List of modules to use as annotation processors Plugins []string + // List of modules to use as kotlin plugin + Kotlin_plugins []string + // List of modules to export to libraries that directly depend on this library as annotation // processors. Note that if the plugins set generates_api: true this will disable the turbine // optimization on modules that depend on this module, which will reduce parallelism and cause @@ -871,7 +874,7 @@ func (j *Module) deps(ctx android.BottomUpMutatorContext) { // explicitly listed in the optional_uses_libs property. tag := usesLibReqTag if android.InList(*lib, dexpreopt.OptionalCompatUsesLibs) || - android.InList(*lib, j.usesLibrary.usesLibraryProperties.Optional_uses_libs) { + android.InList(*lib, j.usesLibrary.usesLibraryProperties.Optional_uses_libs.GetOrDefault(ctx, nil)) { tag = usesLibOptTag } ctx.AddVariationDependencies(nil, tag, *lib) @@ -881,6 +884,7 @@ func (j *Module) deps(ctx android.BottomUpMutatorContext) { } ctx.AddFarVariationDependencies(ctx.Config().BuildOSCommonTarget.Variations(), pluginTag, j.properties.Plugins...) + ctx.AddFarVariationDependencies(ctx.Config().BuildOSCommonTarget.Variations(), kotlinPluginTag, j.properties.Kotlin_plugins...) ctx.AddFarVariationDependencies(ctx.Config().BuildOSCommonTarget.Variations(), errorpronePluginTag, j.properties.Errorprone.Extra_check_modules...) ctx.AddFarVariationDependencies(ctx.Config().BuildOSCommonTarget.Variations(), exportedPluginTag, j.properties.Exported_plugins...) @@ -913,7 +917,7 @@ func (j *Module) deps(ctx android.BottomUpMutatorContext) { if j.useCompose(ctx) { ctx.AddVariationDependencies(ctx.Config().BuildOSCommonTarget.Variations(), kotlinPluginTag, - "androidx.compose.compiler_compiler-hosted") + "androidx.compose.compiler_compiler-hosted-plugin") } } @@ -2512,7 +2516,11 @@ func (j *Module) collectDeps(ctx android.ModuleContext) deps { ctx.PropertyErrorf("exported_plugins", "%q is not a java_plugin module", otherName) } case kotlinPluginTag: - deps.kotlinPlugins = append(deps.kotlinPlugins, dep.ImplementationAndResourcesJars...) + if _, ok := module.(*KotlinPlugin); ok { + deps.kotlinPlugins = append(deps.kotlinPlugins, dep.ImplementationAndResourcesJars...) + } else { + ctx.PropertyErrorf("kotlin_plugins", "%q is not a kotlin_plugin module", otherName) + } case syspropPublicStubDepTag: // This is a sysprop implementation library, forward the JavaInfoProvider from // the corresponding sysprop public stub library as SyspropPublicStubInfoProvider. |