diff options
author | Colin Cross <ccross@android.com> | 2019-01-21 21:37:16 -0800 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2019-01-23 20:17:51 +0000 |
commit | be9cdb8d647b6f47fc427eca5e38092614171a4d (patch) | |
tree | f61e5566bc1327dd89c51b81c3b985f06dceb968 /java/kotlin.go | |
parent | c4efd9cb55239a9cb71286781ef47371d4f391a9 (diff) |
Replace annotation_processors with plugins
Follow bazel's modules for annotation processors by introducing
a java_plugin module type that can contain extra metadata about
the annotation processor, the processor class and a flag to
specify if the annotation processor is compatible with the
turbine optimization. Deprecate the annotation_processors
property, which took a list of java_library_host modules, in
favor of the plugins property, which takes a list of java_plugin
modules. The annotation_processors property will be removed
once all uses have been replaced with plugins.
Bug: 77284273
Test: plugin_test.go
Test: m caliper
Change-Id: I37c1e80eba71ae2d6a06199fb102194a51994989
Diffstat (limited to 'java/kotlin.go')
-rw-r--r-- | java/kotlin.go | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/java/kotlin.go b/java/kotlin.go index c72f2de02..1b2e6429e 100644 --- a/java/kotlin.go +++ b/java/kotlin.go @@ -87,6 +87,7 @@ var kapt = pctx.AndroidGomaStaticRule("kapt", `-P plugin:org.jetbrains.kotlin.kapt3:aptMode=stubsAndApt ` + `-P plugin:org.jetbrains.kotlin.kapt3:javacArguments=$encodedJavacFlags ` + `$kaptProcessorPath ` + + `$kaptProcessor ` + `-Xbuild-file=$kotlinBuildFile && ` + `${config.SoongZipCmd} -jar -o $out -C $kaptDir/sources -D $kaptDir/sources`, CommandDeps: []string{ @@ -100,7 +101,8 @@ var kapt = pctx.AndroidGomaStaticRule("kapt", Rspfile: "$out.rsp", RspfileContent: `$in`, }, - "kotlincFlags", "encodedJavacFlags", "kaptProcessorPath", "classpath", "srcJars", "srcJarDir", "kaptDir", "kotlinJvmTarget", "kotlinBuildFile") + "kotlincFlags", "encodedJavacFlags", "kaptProcessorPath", "kaptProcessor", + "classpath", "srcJars", "srcJarDir", "kaptDir", "kotlinJvmTarget", "kotlinBuildFile") // kotlinKapt performs Kotlin-compatible annotation processing. It takes .kt and .java sources and srcjars, and runs // annotation processors over all of them, producing a srcjar of generated code in outputFile. The srcjar should be @@ -117,6 +119,11 @@ func kotlinKapt(ctx android.ModuleContext, outputFile android.WritablePath, kaptProcessorPath := flags.processorPath.FormTurbineClasspath("-P plugin:org.jetbrains.kotlin.kapt3:apclasspath=") + kaptProcessor := "" + if flags.processor != "" { + kaptProcessor = "-P plugin:org.jetbrains.kotlin.kapt3:processor=" + flags.processor + } + encodedJavacFlags := kaptEncodeFlags([][2]string{ {"-source", flags.javaVersion}, {"-target", flags.javaVersion}, @@ -135,6 +142,7 @@ func kotlinKapt(ctx android.ModuleContext, outputFile android.WritablePath, "srcJarDir": android.PathForModuleOut(ctx, "kapt", "srcJars").String(), "kotlinBuildFile": android.PathForModuleOut(ctx, "kapt", "build.xml").String(), "kaptProcessorPath": strings.Join(kaptProcessorPath, " "), + "kaptProcessor": kaptProcessor, "kaptDir": android.PathForModuleOut(ctx, "kapt/gen").String(), "encodedJavacFlags": encodedJavacFlags, }, |