{ - /** - * A directory used as a base path for computing relative paths in the incremental compilation caches. - * - * If is not specified, incremental compilation caches will be non-relocatable - * - * Managed by [useProjectDir] - * Default values is `null` - */ - public val projectDir: File? /** - * @see [IncrementalJvmCompilationConfiguration.projectDir] + * The root project directory, used for computing relative paths in the incremental compilation caches. + * + * If it is not specified, incremental compilation caches will be non-relocatable. + * + * Managed by [setRootProjectDir] + * Default value is `null` */ - public fun useProjectDir(projectDir: File): IncrementalJvmCompilationConfiguration
+ public val rootProjectDir: File? + + /** + * @see [IncrementalJvmCompilationConfiguration.rootProjectDir] + */ + public fun setRootProjectDir(rootProjectDir: File): IncrementalJvmCompilationConfiguration
+ + /** + * The build directory, used for computing relative paths in the incremental compilation caches. + * + * If it is not specified, incremental compilation caches will be non-relocatable. + * + * Managed by [setBuildDir] + * Default value is `null` + */ + public val buildDir: File? + + /** + * @see [IncrementalJvmCompilationConfiguration.buildDir] + */ + public fun setBuildDir(buildDir: File): IncrementalJvmCompilationConfiguration
/** * An indicator whether incremental compilation will analyze Java files precisely for better changes detection @@ -186,7 +202,9 @@ public interface ClasspathSnapshotBasedIncrementalJvmCompilationConfiguration : */ public fun assureNoClasspathSnapshotsChanges(value: Boolean = true): ClasspathSnapshotBasedIncrementalJvmCompilationConfiguration - override fun useProjectDir(projectDir: File): ClasspathSnapshotBasedIncrementalJvmCompilationConfiguration + override fun setRootProjectDir(rootProjectDir: File): ClasspathSnapshotBasedIncrementalJvmCompilationConfiguration + + override fun setBuildDir(buildDir: File): ClasspathSnapshotBasedIncrementalJvmCompilationConfiguration override fun usePreciseJavaTracking(value: Boolean): ClasspathSnapshotBasedIncrementalJvmCompilationConfiguration diff --git a/compiler/build-tools/kotlin-build-tools-impl/src/main/kotlin/org/jetbrains/kotlin/buildtools/internal/JvmCompilationConfigurationImpl.kt b/compiler/build-tools/kotlin-build-tools-impl/src/main/kotlin/org/jetbrains/kotlin/buildtools/internal/JvmCompilationConfigurationImpl.kt index 204ea811524..7e11946be4f 100644 --- a/compiler/build-tools/kotlin-build-tools-impl/src/main/kotlin/org/jetbrains/kotlin/buildtools/internal/JvmCompilationConfigurationImpl.kt +++ b/compiler/build-tools/kotlin-build-tools-impl/src/main/kotlin/org/jetbrains/kotlin/buildtools/internal/JvmCompilationConfigurationImpl.kt @@ -50,12 +50,18 @@ internal abstract class JvmIncrementalCompilationConfigurationImpl
= emptySet(), ) : IncrementalJvmCompilationConfiguration
{ - override fun useProjectDir(projectDir: File): IncrementalJvmCompilationConfiguration
{ - this.projectDir = projectDir + override fun setRootProjectDir(rootProjectDir: File): IncrementalJvmCompilationConfiguration
{ + this.rootProjectDir = rootProjectDir + return this + } + + override fun setBuildDir(buildDir: File): IncrementalJvmCompilationConfiguration
{
+ this.buildDir = buildDir
return this
}
@@ -90,8 +96,13 @@ internal class ClasspathSnapshotBasedIncrementalJvmCompilationConfigurationImpl(
) :
JvmIncrementalCompilationConfigurationImpl