Extract kotlin-reflect-api module out of kotlin-reflect
This is needed only for faster compilation of the Kotlin project itself and has no effect on the public artifact org.jetbrains.kotlin:kotlin-reflect. The problem this is solving is the rebuild of the project once anything has been changed in modules in 'core' (even inside function bodies, i.e. a non-API change). Previously, changes in 'core' led to the compilation of kotlin-reflect, which led to the rebuild of all modules depending on kotlin-reflect directly or indirectly (which is almost all modules in the project) because kotlin-reflect's artifacts are custom-built and the changes can not be picked up incrementally. But 99.9% of the time the initial changes in 'core' could not have any effect on the usages of kotlin-reflect, because classes from those modules are moved to an internal package in kotlin-reflect and thus are an internal implementation detail. Now, changes in 'core' still lead to the compilation of kotlin-reflect and to the process of building the custom jar. But if a module depends on kotlin-reflect-api, not kotlin-reflect, then the incremental difference checker will detect that the module does not have to be recompiled if there hasn't been any changes to the API of kotlin-reflect-api. Which means that the module will not be rebuilt on every change in 'core'. This commit only introduces the new module. The dependencies (kotlin-reflect -> kotlin-reflect-api) are replaced in the next commit.
This commit is contained in:
@@ -20,6 +20,15 @@ ext.configureJvmProject = { Project project ->
|
||||
}
|
||||
}
|
||||
|
||||
ext.configureJavaOnlyJvm6Project = { Project project ->
|
||||
project.tasks.withType(JavaCompile) {
|
||||
sourceCompatibility = 1.6
|
||||
targetCompatibility = 1.6
|
||||
options.fork = true
|
||||
options.forkOptions.javaHome = file(JDK_16)
|
||||
}
|
||||
}
|
||||
|
||||
ext.configureJvm6Project = { Project project ->
|
||||
project.configure(project) {
|
||||
project.ext.jvmTarget = "1.6"
|
||||
@@ -30,12 +39,7 @@ ext.configureJvm6Project = { Project project ->
|
||||
from sourceSets.main.kotlin
|
||||
}
|
||||
|
||||
tasks.withType(JavaCompile) {
|
||||
sourceCompatibility = 1.6
|
||||
targetCompatibility = 1.6
|
||||
options.fork = true
|
||||
options.forkOptions.javaHome = file(JDK_16)
|
||||
}
|
||||
configureJavaOnlyJvm6Project(project)
|
||||
|
||||
tasks.withType(project.compileKotlin.class) {
|
||||
kotlinOptions.jdkHome = JDK_16
|
||||
|
||||
Reference in New Issue
Block a user