Build: add kotlin.build.useIRForLibraries to enable JVM IR for libraries separately
The next step for JVM IR adoption in our project is going to be enabling `kotlin.build.useIR`, but keeping `kotlin.build.useIRForLibraries` disabled until we fix all remaining ABI incompatibility issues for library code.
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||
|
||||
ext.configureJavaOnlyJvm6Project = { Project project ->
|
||||
project.tasks.withType(JavaCompile) {
|
||||
sourceCompatibility = 1.6
|
||||
@@ -193,6 +195,19 @@ ext.configureLegacyPublishing = { Project project ->
|
||||
}
|
||||
}
|
||||
|
||||
ext.configureJvmIrBackend = { Project project ->
|
||||
project.tasks.withType(KotlinCompile.class) { task ->
|
||||
task.kotlinOptions {
|
||||
if (CommonUtilKt.getBooleanProperty(project, "kotlin.build.useIRForLibraries")) {
|
||||
useIR = true
|
||||
freeCompilerArgs += ["-Xir-binary-with-stable-abi"]
|
||||
} else {
|
||||
useIR = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
allprojects { project ->
|
||||
project.ext.configureSourcesJar = { lambda = {} ->
|
||||
ArtifactsKt.sourcesJar(project) { task ->
|
||||
|
||||
@@ -38,6 +38,8 @@ compileTestKotlin {
|
||||
kotlinOptions.freeCompilerArgs = ["-Xallow-kotlin-package"]
|
||||
}
|
||||
|
||||
configureJvmIrBackend(project)
|
||||
|
||||
if (includeJava9) {
|
||||
compileJava9Sources(project, 'kotlin.test.junit')
|
||||
}
|
||||
|
||||
@@ -48,6 +48,8 @@ compileTestKotlin {
|
||||
kotlinOptions.freeCompilerArgs = ["-Xallow-kotlin-package"]
|
||||
}
|
||||
|
||||
configureJvmIrBackend(project)
|
||||
|
||||
if (includeJava9) {
|
||||
compileJava9Sources(project, 'kotlin.test.junit5')
|
||||
}
|
||||
|
||||
@@ -53,6 +53,8 @@ compileTestKotlin {
|
||||
kotlinOptions.freeCompilerArgs = ["-Xallow-kotlin-package"]
|
||||
}
|
||||
|
||||
configureJvmIrBackend(project)
|
||||
|
||||
if (includeJava9) {
|
||||
compileJava9Sources(project, 'kotlin.test')
|
||||
}
|
||||
|
||||
@@ -41,6 +41,8 @@ compileTestKotlin {
|
||||
kotlinOptions.freeCompilerArgs = ["-Xallow-kotlin-package"]
|
||||
}
|
||||
|
||||
configureJvmIrBackend(project)
|
||||
|
||||
if (includeJava9) {
|
||||
compileJava9Sources(project, 'kotlin.test.testng')
|
||||
}
|
||||
|
||||
@@ -52,6 +52,8 @@ compileKotlin {
|
||||
}
|
||||
}
|
||||
|
||||
configureJvmIrBackend(project)
|
||||
|
||||
jar {
|
||||
manifestAttributes(manifest, project, "internal")
|
||||
}
|
||||
|
||||
@@ -91,6 +91,8 @@ compileTestKotlin {
|
||||
]
|
||||
}
|
||||
|
||||
configureJvmIrBackend(project)
|
||||
|
||||
compileJava9Sources(project, 'kotlin.stdlib.jdk7')
|
||||
|
||||
test {
|
||||
|
||||
@@ -84,6 +84,8 @@ compileTestKotlin {
|
||||
]
|
||||
}
|
||||
|
||||
configureJvmIrBackend(project)
|
||||
|
||||
compileJava9Sources(project, 'kotlin.stdlib.jdk8')
|
||||
|
||||
test {
|
||||
|
||||
@@ -145,6 +145,8 @@ compileLongRunningTestKotlin {
|
||||
kotlinOptions.freeCompilerArgs += "-Xopt-in=kotlin.ExperimentalStdlibApi"
|
||||
}
|
||||
|
||||
configureJvmIrBackend(project)
|
||||
|
||||
task longRunningTest(type: Test, dependsOn: longRunningTestClasses) {
|
||||
group = "verification"
|
||||
testClassesDirs = sourceSets.longRunningTest.output.classesDirs
|
||||
|
||||
@@ -33,3 +33,4 @@ compileKotlin {
|
||||
]
|
||||
}
|
||||
|
||||
configureJvmIrBackend(project)
|
||||
|
||||
@@ -39,3 +39,5 @@ compileKotlin {
|
||||
"-module-name", project.name
|
||||
]
|
||||
}
|
||||
|
||||
configureJvmIrBackend(project)
|
||||
|
||||
Reference in New Issue
Block a user