diff options
author | Ting-Yuan Huang <laszio@google.com> | 2023-01-06 16:14:29 -0800 |
---|---|---|
committer | laszio <ting-yuan@users.noreply.github.com> | 2023-01-07 00:22:17 -0800 |
commit | 22520a6eb64eed3d489cc4faeb697282257cdc74 (patch) | |
tree | ce01fcb0125dc20a529a5acf2f3db76b4fa9fc71 | |
parent | b51373ac31c307afb68aca3d0d80acaa2f46d17a (diff) | |
download | ksp-22520a6eb64eed3d489cc4faeb697282257cdc74.tar.gz |
Downgrade Kotlin from 1.8.20-dev-4608 to 1.8.0
Changes are
1. KotlinCompilationInfo isn't available in 1.8.0. Use
KotlinCompilation/KotlinCompilationData instead.
2. Kotlin2JsCompilation.destinationDirectory is configured to disallow
subsequent changes. Use outputFileProperty instead.
3. 1.8.0 still uses ownModuleName.
4. A minor package name change
5. Disabled kotlin-analysis-api
5 files changed, 25 insertions, 15 deletions
diff --git a/compiler-plugin/src/main/kotlin/com/google/devtools/ksp/KotlinSymbolProcessingExtension.kt b/compiler-plugin/src/main/kotlin/com/google/devtools/ksp/KotlinSymbolProcessingExtension.kt index 60869e83..649cb09b 100644 --- a/compiler-plugin/src/main/kotlin/com/google/devtools/ksp/KotlinSymbolProcessingExtension.kt +++ b/compiler-plugin/src/main/kotlin/com/google/devtools/ksp/KotlinSymbolProcessingExtension.kt @@ -52,7 +52,7 @@ import org.jetbrains.kotlin.container.ComponentProvider import org.jetbrains.kotlin.context.ProjectContext import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.load.java.components.FilesByFacadeFqNameIndexer -import org.jetbrains.kotlin.platform.JsPlatform +import org.jetbrains.kotlin.platform.js.JsPlatform import org.jetbrains.kotlin.platform.jvm.JdkPlatform import org.jetbrains.kotlin.platform.konan.NativePlatform import org.jetbrains.kotlin.psi.KtFile diff --git a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KotlinFactories.kt b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KotlinFactories.kt index 458b38df..589a7ed3 100644 --- a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KotlinFactories.kt +++ b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KotlinFactories.kt @@ -48,10 +48,10 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions import org.jetbrains.kotlin.gradle.dsl.KotlinJsCompilerOptionsDefault import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptionsDefault import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformCommonCompilerOptionsDefault -import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation -import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationInfo import org.jetbrains.kotlin.gradle.plugin.SubpluginOption import org.jetbrains.kotlin.gradle.plugin.mpp.enabledOnCurrentHost +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinCompilationData +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinNativeCompilationData import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jetbrains.kotlin.gradle.tasks.KotlinCompileCommon @@ -75,10 +75,10 @@ class KotlinFactories { fun registerKotlinJvmCompileTask( project: Project, taskName: String, - kotlinCompilation: KotlinCompilation<*>, + kotlinCompilation: KotlinCompilationData<*>, ): TaskProvider<out KspTaskJvm> { return project.tasks.register(taskName, KspTaskJvm::class.java).also { kspTaskProvider -> - KotlinCompileConfig(KotlinCompilationInfo(kotlinCompilation)) + KotlinCompileConfig(kotlinCompilation) .execute(kspTaskProvider as TaskProvider<KotlinCompile>) // useClasspathSnapshot isn't configurable per task. @@ -96,10 +96,10 @@ class KotlinFactories { fun registerKotlinJSCompileTask( project: Project, taskName: String, - kotlinCompilation: KotlinCompilation<*>, + kotlinCompilation: KotlinCompilationData<*>, ): TaskProvider<out KspTaskJS> { return project.tasks.register(taskName, KspTaskJS::class.java).also { kspTaskProvider -> - BaseKotlin2JsCompileConfig<Kotlin2JsCompile>(KotlinCompilationInfo(kotlinCompilation)) + BaseKotlin2JsCompileConfig<Kotlin2JsCompile>(kotlinCompilation) .execute(kspTaskProvider as TaskProvider<Kotlin2JsCompile>) kspTaskProvider.configure { it.incrementalJsKlib = false @@ -110,10 +110,10 @@ class KotlinFactories { fun registerKotlinMetadataCompileTask( project: Project, taskName: String, - kotlinCompilation: KotlinCompilation<*>, + kotlinCompilation: KotlinCompilationData<*>, ): TaskProvider<out KspTaskMetadata> { return project.tasks.register(taskName, KspTaskMetadata::class.java).also { kspTaskProvider -> - KotlinCompileCommonConfig(KotlinCompilationInfo(kotlinCompilation)) + KotlinCompileCommonConfig(kotlinCompilation) .execute(kspTaskProvider as TaskProvider<KotlinCompileCommon>) } } @@ -255,7 +255,7 @@ abstract class KspTaskMetadata @Inject constructor( @CacheableTask abstract class KspTaskNative @Inject internal constructor( - compilation: KotlinCompilationInfo, + compilation: KotlinNativeCompilationData<*>, objectFactory: ObjectFactory, providerFactory: ProviderFactory, execOperations: ExecOperations diff --git a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt index 7400f22b..9bc5ae8b 100644 --- a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt +++ b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt @@ -55,6 +55,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinCommonCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmAndroidCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaCompilation +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinCompilationData import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompileTool import org.jetbrains.kotlin.gradle.tasks.BaseKotlinCompile @@ -297,7 +298,14 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool } fun configureAsAbstractKotlinCompileTool(kspTask: AbstractKotlinCompileTool<*>) { - kspTask.destinationDirectory.set(kspOutputDir) + when (kspTask) { + is Kotlin2JsCompile -> { + kspTask.outputFileProperty.value( + File(kspOutputDir, "dummyOutput.js") + ) + } + else -> kspTask.destinationDirectory.set(kspOutputDir) + } kspTask.outputs.dirs( kotlinOutputDir, javaOutputDir, @@ -376,6 +384,7 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool // Create and configure KSP tasks. val kspTaskProvider = when (kotlinCompileTask) { is KotlinCompile -> { + kotlinCompilation as KotlinCompilationData<*> KotlinFactories.registerKotlinJvmCompileTask(project, kspTaskName, kotlinCompilation).also { it.configure { kspTask -> maybeBlockOtherPlugins(kspTask as BaseKotlinCompile) @@ -387,7 +396,7 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool ) kspTask.compilerOptions.noJdk.value(kotlinCompileTask.compilerOptions.noJdk) kspTask.compilerOptions.useK2.value(false) - kspTask.compilerOptions.moduleName.convention(kotlinCompileTask.moduleName.map { "$it-ksp" }) + kspTask.ownModuleName.value(kotlinCompileTask.ownModuleName.map { "$it-ksp" }) kspTask.moduleName.value(kotlinCompileTask.moduleName.get()) kspTask.destination.value(kspOutputDir) @@ -412,6 +421,7 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool } } is Kotlin2JsCompile -> { + kotlinCompilation as KotlinCompilationData<*> KotlinFactories.registerKotlinJSCompileTask(project, kspTaskName, kotlinCompilation).also { it.configure { kspTask -> maybeBlockOtherPlugins(kspTask as BaseKotlinCompile) @@ -424,7 +434,7 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool kspTask.compilerOptions.freeCompilerArgs .value(kotlinCompileTask.compilerOptions.freeCompilerArgs) kspTask.compilerOptions.useK2.value(false) - kspTask.compilerOptions.moduleName.convention(kotlinCompileTask.moduleName.map { "$it-ksp" }) + kspTask.moduleName.value(kotlinCompileTask.moduleName.map { "$it-ksp" }) kspTask.incrementalChangesTransformers.add( createIncrementalChangesTransformer( @@ -440,6 +450,7 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool } } is KotlinCompileCommon -> { + kotlinCompilation as KotlinCompilationData<*> KotlinFactories.registerKotlinMetadataCompileTask(project, kspTaskName, kotlinCompilation).also { it.configure { kspTask -> maybeBlockOtherPlugins(kspTask as BaseKotlinCompile) diff --git a/gradle.properties b/gradle.properties index 69cb3a40..31730b42 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ # Copied from kotlinc org.gradle.jvmargs=-Duser.country=US -Dkotlin.daemon.jvm.options=-Xmx2200m -Dfile.encoding=UTF-8 -kotlinBaseVersion=1.8.20-dev-4608 +kotlinBaseVersion=1.8.0 agpBaseVersion=7.0.0 intellijVersion=203.8084.24 junitVersion=4.12 diff --git a/settings.gradle.kts b/settings.gradle.kts index 621dc738..68f7e505 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -16,4 +16,3 @@ include("compiler-plugin") include("symbol-processing") include("symbol-processing-cmdline") include("integration-tests") -include("kotlin-analysis-api") |