KT-64385 Enable K2 KAPT by default
Also adds support for front-end compiler plugins in Kapt
This commit is contained in:
committed by
Space Team
parent
8156c91c47
commit
7e9d6e601d
@@ -1,3 +1,4 @@
|
||||
-language-version 1.9
|
||||
-cp %KOTLIN_STDLIB%
|
||||
-d output/ap
|
||||
ap/Processor.kt
|
||||
@@ -1,3 +1,4 @@
|
||||
-language-version 1.9
|
||||
-Kapt-stubs=output/stubs
|
||||
-Kapt-classes=output/classes
|
||||
-Kapt-sources=output/sources
|
||||
|
||||
+2
-1
@@ -14,11 +14,13 @@ output/javaClasses
|
||||
output/sources
|
||||
|
||||
# kotlinc
|
||||
-language-version 1.9
|
||||
-cp %KOTLIN_STDLIB%
|
||||
-d output/ap
|
||||
ap/Processor.kt
|
||||
|
||||
# kapt
|
||||
-language-version 1.9
|
||||
-Kapt-stubs=output/stubs
|
||||
-Kapt-classes=output/classes
|
||||
-Kapt-sources=output/sources
|
||||
@@ -41,7 +43,6 @@ test.Test
|
||||
# after
|
||||
Return code: 1
|
||||
|
||||
warning: kapt currently doesn't support language version 2.0+. Falling back to 1.9.
|
||||
error: error: NonExistentClass type occurred
|
||||
Test.kt:4:8: error: unresolved reference: generated
|
||||
import generated.Property
|
||||
|
||||
@@ -6,11 +6,13 @@ output/javaClasses
|
||||
output/sources
|
||||
|
||||
# kotlinc
|
||||
-language-version 1.9
|
||||
-cp %KOTLIN_STDLIB%
|
||||
-d output/ap
|
||||
ap/Processor.kt
|
||||
|
||||
# kapt
|
||||
-language-version 1.9
|
||||
-Kapt-stubs=output/stubs
|
||||
-Kapt-classes=output/classes
|
||||
-Kapt-sources=output/sources
|
||||
|
||||
@@ -10,11 +10,13 @@ output/javaClasses
|
||||
output/sources
|
||||
|
||||
# kotlinc
|
||||
-language-version 1.9
|
||||
-cp %KOTLIN_STDLIB%
|
||||
-d output/ap
|
||||
ap/Processor.kt
|
||||
|
||||
# kapt
|
||||
-language-version 1.9
|
||||
-Kapt-stubs=output/stubs
|
||||
-Kapt-classes=output/classes
|
||||
-Kapt-sources=output/sources
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
package test
|
||||
|
||||
import apt.Anno
|
||||
import generated.Test as TestGenerated
|
||||
|
||||
@Anno
|
||||
class Test {
|
||||
@field:Anno
|
||||
val property: String = ""
|
||||
|
||||
@Anno
|
||||
fun function() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
fun main() {
|
||||
println("Generated class: " + TestGenerated::class.java.name)
|
||||
}
|
||||
-1
@@ -1 +0,0 @@
|
||||
apt.SampleApt
|
||||
@@ -1,34 +0,0 @@
|
||||
package apt
|
||||
|
||||
import javax.annotation.processing.*
|
||||
import javax.lang.model.SourceVersion
|
||||
import javax.lang.model.element.TypeElement
|
||||
import javax.tools.Diagnostic.Kind.*
|
||||
import javax.tools.StandardLocation
|
||||
|
||||
annotation class Anno
|
||||
|
||||
class SampleApt : AbstractProcessor() {
|
||||
override fun process(annotations: Set<TypeElement>, roundEnv: RoundEnvironment): Boolean {
|
||||
val writeKotlinFiles = processingEnv.options["kapt.test.writeKotlinFiles"] == "true"
|
||||
|
||||
for (element in roundEnv.getElementsAnnotatedWith(Anno::class.java)) {
|
||||
val generatedSimpleName = element.simpleName.toString().capitalize()
|
||||
|
||||
val file = when (writeKotlinFiles) {
|
||||
true -> processingEnv.filer.createResource(StandardLocation.SOURCE_OUTPUT, "generated", "$generatedSimpleName.kt")
|
||||
false -> processingEnv.filer.createSourceFile("generated.$generatedSimpleName")
|
||||
}
|
||||
|
||||
file.openWriter().use {
|
||||
it.write("package generated;\npublic class $generatedSimpleName {}")
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
override fun getSupportedOptions() = setOf("kapt.test.writeKotlinFiles")
|
||||
override fun getSupportedSourceVersion() = SourceVersion.RELEASE_8
|
||||
override fun getSupportedAnnotationTypes() = setOf("apt.Anno")
|
||||
}
|
||||
@@ -1,69 +0,0 @@
|
||||
# mkdir
|
||||
output/stubs
|
||||
output/classes
|
||||
output/javaClasses
|
||||
output/sources
|
||||
output/stubsAlt
|
||||
output/classesAlt
|
||||
output/javaClassesAlt
|
||||
output/sourcesAlt
|
||||
|
||||
# kotlinc
|
||||
-language-version 2.0
|
||||
-cp %KOTLIN_STDLIB%
|
||||
-d output/ap.jar
|
||||
ap/Processor.kt
|
||||
|
||||
# copy
|
||||
ap/META-INF/services/javax.annotation.processing.Processor
|
||||
output/ap/META-INF/services/javax.annotation.processing.Processor
|
||||
|
||||
# kapt
|
||||
-Xuse-k2
|
||||
-Kapt-stubs=output/stubs
|
||||
-Kapt-classes=output/classes
|
||||
-Kapt-sources=output/sources
|
||||
-Kapt-classpath=output/ap
|
||||
-d output/classes
|
||||
-cp output/ap.jar:%KOTLIN_STDLIB%
|
||||
Test.kt
|
||||
|
||||
# javac
|
||||
-cp output/ap.jar
|
||||
-d output/javaClasses
|
||||
-proc:none
|
||||
output/sources/generated/Function.java
|
||||
output/sources/generated/Property.java
|
||||
output/sources/generated/Test.java
|
||||
|
||||
# kapt
|
||||
-language-version 2.0
|
||||
-Kapt-stubs=output/stubsAlt
|
||||
-Kapt-classes=output/classesAlt
|
||||
-Kapt-sources=output/sourcesAlt
|
||||
-Kapt-classpath=output/ap
|
||||
-d output/classesAlt
|
||||
-cp output/ap.jar:%KOTLIN_STDLIB%
|
||||
Test.kt
|
||||
|
||||
# output
|
||||
warning: kapt currently doesn't support language version 2.0+. Falling back to 1.9.
|
||||
|
||||
# java
|
||||
-cp output/classes:output/javaClasses:output/ap.jar:%KOTLIN_STDLIB%
|
||||
test.TestKt
|
||||
|
||||
# javac
|
||||
-cp output/ap.jar
|
||||
-d output/javaClassesAlt
|
||||
-proc:none
|
||||
output/sourcesAlt/generated/Function.java
|
||||
output/sourcesAlt/generated/Property.java
|
||||
output/sourcesAlt/generated/Test.java
|
||||
|
||||
# java
|
||||
-cp output/classes:output/javaClassesAlt:output/ap.jar:%KOTLIN_STDLIB%
|
||||
test.TestKt
|
||||
|
||||
# after
|
||||
Generated class: generated.Test
|
||||
@@ -6,6 +6,7 @@ output/sources
|
||||
output/kotlin-sources
|
||||
|
||||
# kotlinc
|
||||
-language-version 1.9
|
||||
-cp %KOTLIN_STDLIB%
|
||||
-d output/ap
|
||||
ap/Processor.kt
|
||||
@@ -15,6 +16,7 @@ ap/META-INF/services/javax.annotation.processing.Processor
|
||||
output/ap/META-INF/services/javax.annotation.processing.Processor
|
||||
|
||||
# kapt
|
||||
-language-version 1.9
|
||||
-Kapt-stubs=output/stubs
|
||||
-Kapt-classes=output/classes
|
||||
-Kapt-sources=output/sources
|
||||
|
||||
Vendored
+2
@@ -10,6 +10,7 @@ output/sources
|
||||
output/kotlin-sources
|
||||
|
||||
# kotlinc
|
||||
-language-version 1.9
|
||||
-cp %KOTLIN_STDLIB%
|
||||
-d output/ap
|
||||
ap/Processor.kt
|
||||
@@ -19,6 +20,7 @@ ap/Processor.kt
|
||||
output/ap/META-INF/services/javax.annotation.processing.Processor
|
||||
|
||||
# kapt
|
||||
-language-version 1.9
|
||||
-Kapt-stubs=output/stubs
|
||||
-Kapt-classes=output/classes
|
||||
-Kapt-sources=output/sources
|
||||
|
||||
+2
@@ -13,11 +13,13 @@ output/classes
|
||||
output/sources
|
||||
|
||||
# kotlinc
|
||||
-language-version 1.9
|
||||
-cp %KOTLIN_STDLIB%
|
||||
-d output/ap
|
||||
ap/Processor.kt
|
||||
|
||||
# kapt
|
||||
-language-version 1.9
|
||||
-Kapt-stubs=output/stubs
|
||||
-Kapt-classes=output/classes
|
||||
-Kapt-sources=output/sources
|
||||
|
||||
@@ -10,6 +10,7 @@ output/javaClasses
|
||||
output/sources
|
||||
|
||||
# kotlinc
|
||||
-language-version 1.9
|
||||
-cp %KOTLIN_STDLIB%
|
||||
-d output/ap
|
||||
ap/Processor.kt
|
||||
@@ -19,6 +20,7 @@ ap/Processor.kt
|
||||
output/ap/META-INF/services/javax.annotation.processing.Processor
|
||||
|
||||
# kapt
|
||||
-language-version 1.9
|
||||
-Kapt-stubs=output/stubs
|
||||
-Kapt-classes=output/classes
|
||||
-Kapt-sources=output/sources
|
||||
|
||||
@@ -6,11 +6,13 @@ output/javaClasses
|
||||
output/sources
|
||||
|
||||
# kotlinc
|
||||
-language-version 1.9
|
||||
-cp %KOTLIN_STDLIB%
|
||||
-d output/ap
|
||||
ap/processors.kt
|
||||
|
||||
# kapt
|
||||
-language-version 1.9
|
||||
-Kapt-stubs=output/stubs
|
||||
-Kapt-classes=output/classes
|
||||
-Kapt-sources=output/sources
|
||||
|
||||
+4
@@ -14,11 +14,13 @@ output/javaClasses
|
||||
output/sources
|
||||
|
||||
# kotlinc
|
||||
-language-version 1.9
|
||||
-cp %KOTLIN_STDLIB%
|
||||
-d output/ap
|
||||
ap/Processor.kt
|
||||
|
||||
# kapt
|
||||
-language-version 1.9
|
||||
-Kapt-stubs=output/stubs
|
||||
-Kapt-classes=output/classes
|
||||
-Kapt-sources=output/sources
|
||||
@@ -29,6 +31,7 @@ ap/Processor.kt
|
||||
Test.kt
|
||||
|
||||
# kapt
|
||||
-language-version 1.9
|
||||
-Kapt-stubs=output/stubs
|
||||
-Kapt-classes=output/classes
|
||||
-Kapt-sources=output/sources
|
||||
@@ -40,6 +43,7 @@ Test.kt
|
||||
Test.kt
|
||||
|
||||
# kotlinc
|
||||
-language-version 1.9
|
||||
-d output/classes
|
||||
-cp output/ap:%KOTLIN_STDLIB%
|
||||
output/sources
|
||||
|
||||
@@ -6,6 +6,7 @@ output/javaClasses
|
||||
output/sources
|
||||
|
||||
# kotlinc
|
||||
-language-version 1.9
|
||||
-cp %KOTLIN_STDLIB%
|
||||
-d output/ap
|
||||
ap/Processor.kt
|
||||
@@ -15,6 +16,7 @@ ap/META-INF/services/javax.annotation.processing.Processor
|
||||
output/ap/META-INF/services/javax.annotation.processing.Processor
|
||||
|
||||
# kapt
|
||||
-language-version 1.9
|
||||
-Kapt-stubs=output/stubs
|
||||
-Kapt-classes=output/classes
|
||||
-Kapt-sources=output/sources
|
||||
|
||||
@@ -14,11 +14,13 @@ output/javaClasses
|
||||
output/sources
|
||||
|
||||
# kotlinc
|
||||
-language-version 1.9
|
||||
-cp %KOTLIN_STDLIB%
|
||||
-d output/ap
|
||||
ap/Processor.kt
|
||||
|
||||
# kapt
|
||||
-language-version 1.9
|
||||
-Kapt-stubs=output/stubs
|
||||
-Kapt-classes=output/classes
|
||||
-Kapt-sources=output/sources
|
||||
|
||||
Reference in New Issue
Block a user