diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinCommonCompilerOptions.kt b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinCommonCompilerOptions.kt index e1bf6ca3e5e..b478043aae5 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinCommonCompilerOptions.kt +++ b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinCommonCompilerOptions.kt @@ -5,6 +5,9 @@ package org.jetbrains.kotlin.gradle.dsl +@Deprecated("Rebasing Artifact. Will be removed later", replaceWith = ReplaceWith("KotlinJsCompilerOptions")) +typealias CompilerCommonCoOptions = KotlinJsCompilerOptions + interface KotlinCommonCompilerOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerToolOptions { /** diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinCommonCompilerToolOptions.kt b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinCommonCompilerToolOptions.kt index f27a18e742a..b3a4aa83525 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinCommonCompilerToolOptions.kt +++ b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinCommonCompilerToolOptions.kt @@ -5,6 +5,11 @@ package org.jetbrains.kotlin.gradle.dsl + + +@Deprecated("Rebasing Artifact. Will be removed later", replaceWith = ReplaceWith("KotlinCommonCompilerToolOptions")) +typealias CompilerCommonToolOptions = KotlinCommonCompilerToolOptions + interface KotlinCommonCompilerToolOptions { /** diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinCommonOptions.kt b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinCommonOptions.kt index ff55c9675eb..0773cd9482c 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinCommonOptions.kt +++ b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinCommonOptions.kt @@ -5,6 +5,9 @@ package org.jetbrains.kotlin.gradle.dsl +@Deprecated("Rebasing Artifact. Will be removed later", replaceWith = ReplaceWith("KotlinCommonCompilerOptions")) +typealias CompilerCommonOptions = KotlinCommonCompilerOptions + @Deprecated("Use KotlinCommonCompilerOptions instead", level = DeprecationLevel.WARNING) interface KotlinCommonOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommonToolOptions { override val options: org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsCompilerOptions.kt b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsCompilerOptions.kt index ab69ec703d5..2927323c76e 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsCompilerOptions.kt +++ b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsCompilerOptions.kt @@ -5,6 +5,9 @@ package org.jetbrains.kotlin.gradle.dsl +@Deprecated("Rebasing Artifact. Will be removed later", replaceWith = ReplaceWith("KotlinJsCompilerOptions")) +typealias CompilerJsOptions = KotlinJsCompilerOptions + interface KotlinJsCompilerOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions { /** diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsDceCompilerToolOptions.kt b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsDceCompilerToolOptions.kt index 090f90b3bfd..97a5917e337 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsDceCompilerToolOptions.kt +++ b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsDceCompilerToolOptions.kt @@ -5,6 +5,9 @@ package org.jetbrains.kotlin.gradle.dsl +@Deprecated("Rebasing Artifact. Will be removed later", replaceWith = ReplaceWith("KotlinJsDceCompilerToolOptions")) +typealias CompilerJsDceOptions = KotlinJsDceCompilerToolOptions + interface KotlinJsDceCompilerToolOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerToolOptions { /** diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJvmCompilerOptions.kt b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJvmCompilerOptions.kt index 39217371f84..27dc7e7c748 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJvmCompilerOptions.kt +++ b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJvmCompilerOptions.kt @@ -5,6 +5,9 @@ package org.jetbrains.kotlin.gradle.dsl +@Deprecated("Rebasing Artifact. Will be removed later", replaceWith = ReplaceWith("KotlinJvmCompilerOptions")) +typealias CompilerJvmOptions = KotlinJvmCompilerOptions + interface KotlinJvmCompilerOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions { /** diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinMultiplatformCommonCompilerOptions.kt b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinMultiplatformCommonCompilerOptions.kt index 83de1be9b61..6b109cefaf3 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinMultiplatformCommonCompilerOptions.kt +++ b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinMultiplatformCommonCompilerOptions.kt @@ -5,5 +5,8 @@ package org.jetbrains.kotlin.gradle.dsl +@Deprecated("Rebasing Artifact. Will be removed later", replaceWith = ReplaceWith("KotlinMultiplatformCommonCompilerOptions")) +typealias CompilerMultiplatformCommonOptions = KotlinMultiplatformCommonCompilerOptions + interface KotlinMultiplatformCommonCompilerOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions { } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/Kotlin2JvmSourceSetProcessor.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/Kotlin2JvmSourceSetProcessor.kt new file mode 100644 index 00000000000..67fe2969020 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/Kotlin2JvmSourceSetProcessor.kt @@ -0,0 +1,78 @@ +/* + * 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 + +import org.gradle.api.Project +import org.gradle.api.file.Directory +import org.gradle.api.provider.Provider +import org.gradle.api.tasks.SourceSet +import org.gradle.api.tasks.TaskProvider +import org.gradle.api.tasks.compile.AbstractCompile +import org.jetbrains.kotlin.gradle.dsl.CompilerJvmOptions +import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinCompilationData +import org.jetbrains.kotlin.gradle.scripting.internal.ScriptingGradleSubplugin +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile +import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider +import org.jetbrains.kotlin.gradle.tasks.configuration.KotlinCompileConfig +import org.jetbrains.kotlin.gradle.tasks.withType +import org.jetbrains.kotlin.gradle.utils.whenKaptEnabled + +internal class Kotlin2JvmSourceSetProcessor( + tasksProvider: KotlinTasksProvider, + kotlinCompilation: KotlinCompilationData<*> +) : KotlinSourceSetProcessor( + tasksProvider, "Compiles the $kotlinCompilation.", kotlinCompilation +) { + override fun doRegisterTask(project: Project, taskName: String): TaskProvider { + val configAction = KotlinCompileConfig(kotlinCompilation) + applyStandardTaskConfiguration(configAction) + return tasksProvider.registerKotlinJVMTask( + project, + taskName, + kotlinCompilation.compilerOptions.options as CompilerJvmOptions, + configAction + ) + } + + override fun doTargetSpecificProcessing() { + project.whenKaptEnabled { + Kapt3GradleSubplugin.createAptConfigurationIfNeeded(project, kotlinCompilation.compilationPurpose) + } + + ScriptingGradleSubplugin.configureForSourceSet(project, kotlinCompilation.compilationPurpose) + + project.whenEvaluated { + val subpluginEnvironment = SubpluginEnvironment.loadSubplugins(project) + + if (kotlinCompilation is KotlinCompilation<*>) // FIXME support compiler plugins with PM20 + subpluginEnvironment.addSubpluginOptions(project, kotlinCompilation) + + javaSourceSet?.let { java -> + val javaTask = project.tasks.withType().named(java.compileJavaTaskName) + javaTask.configure { javaCompile -> + javaCompile.classpath += project.files(kotlinTask.flatMap { it.destinationDirectory }) + } + kotlinTask.configure { kotlinCompile -> + kotlinCompile.javaOutputDir.set(javaTask.flatMap { it.destinationDirectory }) + } + } + + if (sourceSetName == SourceSet.MAIN_SOURCE_SET_NAME) { + project.pluginManager.withPlugin("java-library") { + registerKotlinOutputForJavaLibrary(kotlinTask.flatMap { it.destinationDirectory }) + } + } + } + } + + private fun registerKotlinOutputForJavaLibrary(outputDir: Provider) { + val configuration = project.configurations.getByName("apiElements") + configuration.outgoing.variants.getByName("classes").artifact(outputDir) { + it.type = "java-classes-directory" + } + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt index 5468b34e8a9..d3ded84537a 100755 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt @@ -9,7 +9,6 @@ import com.android.build.gradle.* import org.gradle.api.* import org.gradle.api.attributes.Category import org.gradle.api.attributes.Usage -import org.gradle.api.file.Directory import org.gradle.api.file.FileCollection import org.gradle.api.plugins.JavaPlugin import org.gradle.api.provider.Provider @@ -18,11 +17,9 @@ import org.gradle.api.publish.maven.MavenPom import org.gradle.api.publish.maven.MavenPublication import org.gradle.api.tasks.SourceSet import org.gradle.api.tasks.TaskProvider -import org.gradle.api.tasks.compile.AbstractCompile import org.gradle.jvm.tasks.Jar import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry import org.jetbrains.kotlin.gradle.dsl.* -import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin import org.jetbrains.kotlin.gradle.internal.customizeKotlinDependencies import org.jetbrains.kotlin.gradle.model.builder.KotlinModelBuilder import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.kotlinPropertiesProvider @@ -34,7 +31,6 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.isMainCompilationData import org.jetbrains.kotlin.gradle.scripting.internal.ScriptingGradleSubplugin import org.jetbrains.kotlin.gradle.targets.js.ir.* import org.jetbrains.kotlin.gradle.tasks.* -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jetbrains.kotlin.gradle.tasks.configuration.* import org.jetbrains.kotlin.gradle.utils.* import java.io.File @@ -51,62 +47,6 @@ val KOTLIN_DSL_NAME = "kotlin" val KOTLIN_JS_DSL_NAME = "kotlin2js" val KOTLIN_OPTIONS_DSL_NAME = "kotlinOptions" -internal class Kotlin2JvmSourceSetProcessor( - tasksProvider: KotlinTasksProvider, - kotlinCompilation: KotlinCompilationData<*> -) : KotlinSourceSetProcessor( - tasksProvider, "Compiles the $kotlinCompilation.", kotlinCompilation -) { - override fun doRegisterTask(project: Project, taskName: String): TaskProvider { - val configAction = KotlinCompileConfig(kotlinCompilation) - applyStandardTaskConfiguration(configAction) - return tasksProvider.registerKotlinJVMTask( - project, - taskName, - kotlinCompilation.compilerOptions.options as KotlinJvmCompilerOptions, - configAction - ) - } - - override fun doTargetSpecificProcessing() { - project.whenKaptEnabled { - Kapt3GradleSubplugin.createAptConfigurationIfNeeded(project, kotlinCompilation.compilationPurpose) - } - - ScriptingGradleSubplugin.configureForSourceSet(project, kotlinCompilation.compilationPurpose) - - project.whenEvaluated { - val subpluginEnvironment = SubpluginEnvironment.loadSubplugins(project) - - if (kotlinCompilation is KotlinCompilation<*>) // FIXME support compiler plugins with PM20 - subpluginEnvironment.addSubpluginOptions(project, kotlinCompilation) - - javaSourceSet?.let { java -> - val javaTask = project.tasks.withType().named(java.compileJavaTaskName) - javaTask.configure { javaCompile -> - javaCompile.classpath += project.files(kotlinTask.flatMap { it.destinationDirectory }) - } - kotlinTask.configure { kotlinCompile -> - kotlinCompile.javaOutputDir.set(javaTask.flatMap { it.destinationDirectory }) - } - } - - if (sourceSetName == SourceSet.MAIN_SOURCE_SET_NAME) { - project.pluginManager.withPlugin("java-library") { - registerKotlinOutputForJavaLibrary(kotlinTask.flatMap { it.destinationDirectory }) - } - } - } - } - - private fun registerKotlinOutputForJavaLibrary(outputDir: Provider) { - val configuration = project.configurations.getByName("apiElements") - configuration.outgoing.variants.getByName("classes").artifact(outputDir) { - it.type = "java-classes-directory" - } - } -} - internal fun KotlinCompilationOutput.addClassesDir(classesDirProvider: () -> FileCollection) { classesDirs.from(Callable { classesDirProvider() }) }