From e190f7fce53b32747a344ec84e89fb8e27305881 Mon Sep 17 00:00:00 2001 From: Sebastian Sellmair Date: Tue, 27 Sep 2022 15:00:05 +0200 Subject: [PATCH] [Gradle][Minor] Move WithJavaCompilationDetails into separate source file KT-54312 --- .../gradle/plugin/mpp/CompilationDetails.kt | 37 -------------- .../plugin/mpp/WithJavaCompilationDetails.kt | 48 +++++++++++++++++++ 2 files changed, 48 insertions(+), 37 deletions(-) create mode 100644 libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/WithJavaCompilationDetails.kt diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/CompilationDetails.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/CompilationDetails.kt index c588ea78ffa..63cec08592d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/CompilationDetails.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/CompilationDetails.kt @@ -9,13 +9,11 @@ import com.android.build.gradle.api.BaseVariant import org.gradle.api.Action import org.gradle.api.Project import org.gradle.api.file.FileCollection -import org.gradle.api.tasks.SourceSet import org.jetbrains.kotlin.gradle.dsl.* import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.* import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.* import org.jetbrains.kotlin.gradle.plugin.sources.* -import org.jetbrains.kotlin.gradle.plugin.sources.kpm.FragmentMappedKotlinSourceSet import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget import org.jetbrains.kotlin.gradle.utils.* @@ -59,41 +57,6 @@ internal val CompilationDetails<*>.associateCompilationsClosure: Iterable( - target: KotlinTarget, - compilationPurpose: String, - defaultSourceSet: KotlinSourceSet, - createCompilerOptions: DefaultCompilationDetails.() -> HasCompilerOptions, - createKotlinOptions: DefaultCompilationDetails.() -> T -) : DefaultCompilationDetailsWithRuntime(target, compilationPurpose, defaultSourceSet, createCompilerOptions, createKotlinOptions) { - @Suppress("UNCHECKED_CAST") - override val compilation: KotlinWithJavaCompilation - get() = super.compilation as KotlinWithJavaCompilation - - val javaSourceSet: SourceSet - get() = compilation.javaSourceSet - - override val output: KotlinCompilationOutput by lazy { KotlinWithJavaCompilationOutput(compilation) } - - override val compileDependencyFilesHolder: GradleKpmDependencyFilesHolder - get() = object : GradleKpmDependencyFilesHolder { - override val dependencyConfigurationName: String by javaSourceSet::compileClasspathConfigurationName - override var dependencyFiles: FileCollection by javaSourceSet::compileClasspath - } - - override val runtimeDependencyFilesHolder: GradleKpmDependencyFilesHolder - get() = object : GradleKpmDependencyFilesHolder { - override val dependencyConfigurationName: String by javaSourceSet::runtimeClasspathConfigurationName - override var dependencyFiles: FileCollection by javaSourceSet::runtimeClasspath - } - - override fun addAssociateCompilationDependencies(other: KotlinCompilation<*>) { - if (compilationPurpose != SourceSet.TEST_SOURCE_SET_NAME || other.name != SourceSet.MAIN_SOURCE_SET_NAME) { - super.addAssociateCompilationDependencies(other) - } // otherwise, do nothing: the Java Gradle plugin adds these dependencies for us, we don't need to add them to the classpath - } -} - class AndroidCompilationDetails( target: KotlinTarget, compilationPurpose: String, diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/WithJavaCompilationDetails.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/WithJavaCompilationDetails.kt new file mode 100644 index 00000000000..53298e50e97 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/WithJavaCompilationDetails.kt @@ -0,0 +1,48 @@ +/* + * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.gradle.plugin.mpp + +import org.gradle.api.file.FileCollection +import org.gradle.api.tasks.SourceSet +import org.jetbrains.kotlin.gradle.dsl.CompilerCommonOptions +import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions +import org.jetbrains.kotlin.gradle.plugin.* +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.GradleKpmDependencyFilesHolder + +internal class WithJavaCompilationDetails( + target: KotlinTarget, + compilationPurpose: String, + defaultSourceSet: KotlinSourceSet, + createCompilerOptions: DefaultCompilationDetails.() -> HasCompilerOptions, + createKotlinOptions: DefaultCompilationDetails.() -> T +) : DefaultCompilationDetailsWithRuntime(target, compilationPurpose, defaultSourceSet, createCompilerOptions, createKotlinOptions) { + @Suppress("UNCHECKED_CAST") + override val compilation: KotlinWithJavaCompilation + get() = super.compilation as KotlinWithJavaCompilation + + val javaSourceSet: SourceSet + get() = compilation.javaSourceSet + + override val output: KotlinCompilationOutput by lazy { KotlinWithJavaCompilationOutput(compilation) } + + override val compileDependencyFilesHolder: GradleKpmDependencyFilesHolder + get() = object : GradleKpmDependencyFilesHolder { + override val dependencyConfigurationName: String by javaSourceSet::compileClasspathConfigurationName + override var dependencyFiles: FileCollection by javaSourceSet::compileClasspath + } + + override val runtimeDependencyFilesHolder: GradleKpmDependencyFilesHolder + get() = object : GradleKpmDependencyFilesHolder { + override val dependencyConfigurationName: String by javaSourceSet::runtimeClasspathConfigurationName + override var dependencyFiles: FileCollection by javaSourceSet::runtimeClasspath + } + + override fun addAssociateCompilationDependencies(other: KotlinCompilation<*>) { + if (compilationPurpose != SourceSet.TEST_SOURCE_SET_NAME || other.name != SourceSet.MAIN_SOURCE_SET_NAME) { + super.addAssociateCompilationDependencies(other) + } // otherwise, do nothing: the Java Gradle plugin adds these dependencies for us, we don't need to add them to the classpath + } +} \ No newline at end of file