Enable compose kotlinc plugin when depending on the compose runtime
When a module depends on the compose runtime add a -Xplugin argument to the kotlinc flags that enables the compose compiler plugin. Bug: 196351110 Test: TestKotlinCompose Change-Id: I423a3c4d12df42804a24b672a40a165bc8dd165f
This commit is contained in:
17
java/base.go
17
java/base.go
@@ -643,6 +643,11 @@ func (j *Module) deps(ctx android.BottomUpMutatorContext) {
|
||||
} else if j.shouldInstrumentStatic(ctx) {
|
||||
ctx.AddVariationDependencies(nil, staticLibTag, "jacocoagent")
|
||||
}
|
||||
|
||||
if j.useCompose() {
|
||||
ctx.AddVariationDependencies(ctx.Config().BuildOSCommonTarget.Variations(), kotlinPluginTag,
|
||||
"androidx.compose.compiler_compiler-hosted")
|
||||
}
|
||||
}
|
||||
|
||||
func hasSrcExt(srcs []string, ext string) bool {
|
||||
@@ -911,6 +916,12 @@ func (j *Module) compile(ctx android.ModuleContext, aaptSrcJar android.Path) {
|
||||
if ctx.Device() {
|
||||
kotlincFlags = append(kotlincFlags, "-no-jdk")
|
||||
}
|
||||
|
||||
for _, plugin := range deps.kotlinPlugins {
|
||||
kotlincFlags = append(kotlincFlags, "-Xplugin="+plugin.String())
|
||||
}
|
||||
flags.kotlincDeps = append(flags.kotlincDeps, deps.kotlinPlugins...)
|
||||
|
||||
if len(kotlincFlags) > 0 {
|
||||
// optimization.
|
||||
ctx.Variable(pctx, "kotlincFlags", strings.Join(kotlincFlags, " "))
|
||||
@@ -1325,6 +1336,10 @@ func (j *Module) compile(ctx android.ModuleContext, aaptSrcJar android.Path) {
|
||||
j.outputFile = outputFile.WithoutRel()
|
||||
}
|
||||
|
||||
func (j *Module) useCompose() bool {
|
||||
return android.InList("androidx.compose.runtime_runtime", j.properties.Static_libs)
|
||||
}
|
||||
|
||||
// Returns a copy of the supplied flags, but with all the errorprone-related
|
||||
// fields copied to the regular build's fields.
|
||||
func enableErrorproneFlags(flags javaBuilderFlags) javaBuilderFlags {
|
||||
@@ -1755,6 +1770,8 @@ func (j *Module) collectDeps(ctx android.ModuleContext) deps {
|
||||
deps.kotlinStdlib = append(deps.kotlinStdlib, dep.HeaderJars...)
|
||||
case kotlinAnnotationsTag:
|
||||
deps.kotlinAnnotations = dep.HeaderJars
|
||||
case kotlinPluginTag:
|
||||
deps.kotlinPlugins = append(deps.kotlinPlugins, dep.ImplementationAndResourcesJars...)
|
||||
case syspropPublicStubDepTag:
|
||||
// This is a sysprop implementation library, forward the JavaInfoProvider from
|
||||
// the corresponding sysprop public stub library as SyspropPublicStubInfoProvider.
|
||||
|
Reference in New Issue
Block a user