From 7b665e7673cd1a030da5b65eb2fe13a1a44595a5 Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Fri, 30 Jun 2023 16:36:39 +0200 Subject: [PATCH] [Gradle] Move UsesKotlinJavaToolchain inheritance into api Such way it will be visible which tasks are using this feature. ^KT-58858 In Progress --- .../api/kotlin-gradle-plugin-api.api | 14 ++++++++++++-- .../kotlin/gradle/tasks/KotlinTaskConfigs.kt | 6 ++++-- .../kotlin/gradle/internal/kapt/KaptTask.kt | 1 - .../jetbrains/kotlin/gradle/tasks/KotlinCompile.kt | 3 +-- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-api/api/kotlin-gradle-plugin-api.api b/libraries/tools/kotlin-gradle-plugin-api/api/kotlin-gradle-plugin-api.api index 5ec20bbc35e..b01a00b148b 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/api/kotlin-gradle-plugin-api.api +++ b/libraries/tools/kotlin-gradle-plugin-api/api/kotlin-gradle-plugin-api.api @@ -1268,7 +1268,7 @@ public class org/jetbrains/kotlin/gradle/plugin/mpp/NativeOutputKind : java/lang public static fun values ()[Lorg/jetbrains/kotlin/gradle/plugin/mpp/NativeOutputKind; } -public abstract interface class org/jetbrains/kotlin/gradle/tasks/BaseKapt : org/gradle/api/Task { +public abstract interface class org/jetbrains/kotlin/gradle/tasks/BaseKapt : org/gradle/api/Task, org/jetbrains/kotlin/gradle/tasks/UsesKotlinJavaToolchain { public abstract fun getAnnotationProcessorOptionProviders ()Ljava/util/List; public abstract fun getClassesDir ()Lorg/gradle/api/file/DirectoryProperty; public abstract fun getClasspath ()Lorg/gradle/api/file/ConfigurableFileCollection; @@ -1286,6 +1286,10 @@ public abstract interface class org/jetbrains/kotlin/gradle/tasks/BaseKapt : org public abstract fun getStubsDir ()Lorg/gradle/api/file/DirectoryProperty; } +public final class org/jetbrains/kotlin/gradle/tasks/BaseKapt$DefaultImpls { + public static fun getKotlinJavaToolchain (Lorg/jetbrains/kotlin/gradle/tasks/BaseKapt;)Lorg/jetbrains/kotlin/gradle/tasks/KotlinJavaToolchain; +} + public abstract interface class org/jetbrains/kotlin/gradle/tasks/BaseKotlinCompile : org/jetbrains/kotlin/gradle/tasks/KotlinCompileTool { public abstract fun getFriendPaths ()Lorg/gradle/api/file/ConfigurableFileCollection; public abstract fun getModuleName ()Lorg/gradle/api/provider/Property; @@ -1317,6 +1321,10 @@ public abstract interface class org/jetbrains/kotlin/gradle/tasks/Kapt : org/jet public abstract fun getKaptJars ()Lorg/gradle/api/file/ConfigurableFileCollection; } +public final class org/jetbrains/kotlin/gradle/tasks/Kapt$DefaultImpls { + public static fun getKotlinJavaToolchain (Lorg/jetbrains/kotlin/gradle/tasks/Kapt;)Lorg/jetbrains/kotlin/gradle/tasks/KotlinJavaToolchain; +} + public abstract interface class org/jetbrains/kotlin/gradle/tasks/KaptGenerateStubs : org/jetbrains/kotlin/gradle/tasks/KotlinJvmCompile { public abstract fun getKaptClasspath ()Lorg/gradle/api/file/ConfigurableFileCollection; public abstract fun getModuleName ()Lorg/gradle/api/provider/Property; @@ -1326,6 +1334,7 @@ public abstract interface class org/jetbrains/kotlin/gradle/tasks/KaptGenerateSt public final class org/jetbrains/kotlin/gradle/tasks/KaptGenerateStubs$DefaultImpls { public static fun compilerOptions (Lorg/jetbrains/kotlin/gradle/tasks/KaptGenerateStubs;Lkotlin/jvm/functions/Function1;)V public static fun compilerOptions (Lorg/jetbrains/kotlin/gradle/tasks/KaptGenerateStubs;Lorg/gradle/api/Action;)V + public static fun getKotlinJavaToolchain (Lorg/jetbrains/kotlin/gradle/tasks/KaptGenerateStubs;)Lorg/jetbrains/kotlin/gradle/tasks/KotlinJavaToolchain; public static fun kotlinOptions (Lorg/jetbrains/kotlin/gradle/tasks/KaptGenerateStubs;Lgroovy/lang/Closure;)V public static fun kotlinOptions (Lorg/jetbrains/kotlin/gradle/tasks/KaptGenerateStubs;Lkotlin/jvm/functions/Function1;)V public static fun kotlinOptions (Lorg/jetbrains/kotlin/gradle/tasks/KaptGenerateStubs;Lorg/gradle/api/Action;)V @@ -1385,7 +1394,7 @@ public final class org/jetbrains/kotlin/gradle/tasks/KotlinJavaToolchain$JdkSett public static fun use (Lorg/jetbrains/kotlin/gradle/tasks/KotlinJavaToolchain$JdkSetter;Ljava/lang/String;Ljava/lang/Object;)V } -public abstract interface class org/jetbrains/kotlin/gradle/tasks/KotlinJvmCompile : org/jetbrains/kotlin/gradle/dsl/KotlinCompile, org/jetbrains/kotlin/gradle/tasks/BaseKotlinCompile, org/jetbrains/kotlin/gradle/tasks/KotlinCompilationTask { +public abstract interface class org/jetbrains/kotlin/gradle/tasks/KotlinJvmCompile : org/jetbrains/kotlin/gradle/dsl/KotlinCompile, org/jetbrains/kotlin/gradle/tasks/BaseKotlinCompile, org/jetbrains/kotlin/gradle/tasks/KotlinCompilationTask, org/jetbrains/kotlin/gradle/tasks/UsesKotlinJavaToolchain { public abstract fun getJvmTargetValidationMode ()Lorg/gradle/api/provider/Property; public abstract fun getModuleName ()Lorg/gradle/api/provider/Property; public abstract fun getParentKotlinOptions ()Lorg/gradle/api/provider/Property; @@ -1394,6 +1403,7 @@ public abstract interface class org/jetbrains/kotlin/gradle/tasks/KotlinJvmCompi public final class org/jetbrains/kotlin/gradle/tasks/KotlinJvmCompile$DefaultImpls { public static fun compilerOptions (Lorg/jetbrains/kotlin/gradle/tasks/KotlinJvmCompile;Lkotlin/jvm/functions/Function1;)V public static fun compilerOptions (Lorg/jetbrains/kotlin/gradle/tasks/KotlinJvmCompile;Lorg/gradle/api/Action;)V + public static fun getKotlinJavaToolchain (Lorg/jetbrains/kotlin/gradle/tasks/KotlinJvmCompile;)Lorg/jetbrains/kotlin/gradle/tasks/KotlinJavaToolchain; public static fun kotlinOptions (Lorg/jetbrains/kotlin/gradle/tasks/KotlinJvmCompile;Lgroovy/lang/Closure;)V public static fun kotlinOptions (Lorg/jetbrains/kotlin/gradle/tasks/KotlinJvmCompile;Lkotlin/jvm/functions/Function1;)V public static fun kotlinOptions (Lorg/jetbrains/kotlin/gradle/tasks/KotlinJvmCompile;Lorg/gradle/api/Action;)V diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinTaskConfigs.kt b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinTaskConfigs.kt index ff5cb139537..955529b84b4 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinTaskConfigs.kt +++ b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinTaskConfigs.kt @@ -80,7 +80,8 @@ interface BaseKotlinCompile : KotlinCompileTool { @Suppress("TYPEALIAS_EXPANSION_DEPRECATION") interface KotlinJvmCompile : BaseKotlinCompile, KotlinCompileDeprecated, - KotlinCompilationTask { + KotlinCompilationTask, + UsesKotlinJavaToolchain { @get:Deprecated( message = "Please migrate to compilerOptions.moduleName", @@ -137,7 +138,8 @@ interface KaptGenerateStubs : KotlinJvmCompile { override val moduleName: Property } -interface BaseKapt : Task { +interface BaseKapt : Task, + UsesKotlinJavaToolchain { //part of kaptClasspath consisting from external artifacts only //basically kaptClasspath = kaptExternalClasspath + artifacts built locally diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptTask.kt index 6ffad6c316e..b2703fe06c1 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptTask.kt @@ -34,7 +34,6 @@ abstract class KaptTask @Inject constructor( objectFactory: ObjectFactory ) : DefaultTask(), TaskWithLocalState, - UsesKotlinJavaToolchain, BaseKapt { init { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinCompile.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinCompile.kt index bf4a21ed13f..247993bb32d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinCompile.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinCompile.kt @@ -62,8 +62,7 @@ abstract class KotlinCompile @Inject constructor( ) : AbstractKotlinCompile(objectFactory, workerExecutor), K2MultiplatformCompilationTask, @Suppress("TYPEALIAS_EXPANSION_DEPRECATION") KotlinJvmCompileDsl, - KotlinCompilationTask, - UsesKotlinJavaToolchain { + KotlinCompilationTask { final override val kotlinOptions: KotlinJvmOptions = KotlinJvmOptionsCompat( { this },