diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPluginWrapper.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPluginWrapper.kt index a1b1754e37d..00d097275d4 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPluginWrapper.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPluginWrapper.kt @@ -51,10 +51,10 @@ import org.jetbrains.kotlin.gradle.targets.native.internal.CInteropKlibLibraryEl import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompileTool import org.jetbrains.kotlin.gradle.testing.internal.KotlinTestsRegistry import org.jetbrains.kotlin.gradle.tooling.registerBuildKotlinToolingMetadataTask +import org.jetbrains.kotlin.gradle.utils.* import org.jetbrains.kotlin.gradle.utils.addGradlePluginMetadataAttributes import org.jetbrains.kotlin.gradle.utils.checkGradleCompatibility import org.jetbrains.kotlin.gradle.utils.getOrPut -import org.jetbrains.kotlin.gradle.utils.loadPropertyFromResources import org.jetbrains.kotlin.gradle.utils.runProjectConfigurationHealthCheck import org.jetbrains.kotlin.statistics.metrics.StringMetrics import org.jetbrains.kotlin.tooling.core.KotlinToolingVersion @@ -92,7 +92,10 @@ abstract class DefaultKotlinBasePlugin : KotlinBasePlugin { addGradlePluginMetadataAttributes(project) } - KotlinGradleBuildServices.registerIfAbsent(project.gradle).get().detectKotlinPluginLoadedInMultipleProjects(project, kotlinPluginVersion) + val kotlinGradleBuildServices = KotlinGradleBuildServices.registerIfAbsent(project.gradle).get() + if (!isProjectIsolationEnabled(project.gradle)) { + kotlinGradleBuildServices.detectKotlinPluginLoadedInMultipleProjects(project, kotlinPluginVersion) + } BuildMetricsService.registerIfAbsent(project)?.also { buildMetricsService -> val buildEventsListenerRegistryHolder = BuildEventsListenerRegistryHolder.getInstance(project) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/configurationCache.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/configurationCache.kt index c35d48fb8cc..eb187327ebd 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/configurationCache.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/configurationCache.kt @@ -13,6 +13,13 @@ import org.gradle.api.provider.Provider import org.jetbrains.kotlin.gradle.plugin.internal.configurationTimePropertiesAccessor import org.jetbrains.kotlin.gradle.plugin.internal.usedAtConfigurationTime +internal fun isProjectIsolationEnabled(gradle: Gradle) = + try { + (gradle.startParameter as? StartParameterInternal)?.isolatedProjects?.get() + } catch (_: IncompatibleClassChangeError) { + null + } ?: false + internal fun isConfigurationCacheAvailable(gradle: Gradle) = try { val startParameters = gradle.startParameter