[mpp] Migrate jvmWithJava preset deprecation to the new infra
This commit is contained in:
committed by
Space Team
parent
05662eae7a
commit
ee9a952da2
+5
-4
@@ -16,14 +16,15 @@ import org.jetbrains.kotlin.gradle.native.transformNativeTestProject
|
||||
import org.jetbrains.kotlin.gradle.native.transformNativeTestProjectWithPluginDsl
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinJsCompilerType
|
||||
import org.jetbrains.kotlin.gradle.plugin.ProjectLocalConfigurations
|
||||
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics
|
||||
import org.jetbrains.kotlin.gradle.plugin.lowerName
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmWithJavaTargetPreset
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMultiplatformPlugin
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.UnusedSourceSetsChecker
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.METADATA_CONFIGURATION_NAME_SUFFIX
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.UnsatisfiedSourceSetVisibilityException
|
||||
import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget
|
||||
import org.jetbrains.kotlin.gradle.testbase.TestVersions
|
||||
import org.jetbrains.kotlin.gradle.testbase.assertHasDiagnostic
|
||||
import org.jetbrains.kotlin.gradle.testbase.assertNoDiagnostic
|
||||
import org.jetbrains.kotlin.gradle.util.*
|
||||
import org.jetbrains.kotlin.konan.target.HostManager
|
||||
import org.jetbrains.kotlin.library.KLIB_PROPERTY_SHORT_NAME
|
||||
@@ -668,9 +669,9 @@ open class NewMultiplatformIT : BaseGradleIT() {
|
||||
}
|
||||
|
||||
if (testJavaSupportInJvmTargets) {
|
||||
assertNotContains(KotlinJvmWithJavaTargetPreset.DEPRECATION_WARNING)
|
||||
assertNoDiagnostic(KotlinToolingDiagnostics.DeprecatedJvmWithJavaPresetDiagnostic)
|
||||
} else {
|
||||
assertContains(KotlinJvmWithJavaTargetPreset.DEPRECATION_WARNING)
|
||||
assertHasDiagnostic(KotlinToolingDiagnostics.DeprecatedJvmWithJavaPresetDiagnostic)
|
||||
}
|
||||
|
||||
assertTasksExecuted(":run")
|
||||
|
||||
+19
@@ -35,4 +35,23 @@ object KotlinToolingDiagnostics {
|
||||
.onlyIf(changedKotlinNativeHomeProperty != null)
|
||||
)
|
||||
}
|
||||
|
||||
object DeprecatedJvmWithJavaPresetDiagnostic : ToolingDiagnosticFactory(WARNING) {
|
||||
operator fun invoke() = build(
|
||||
"""
|
||||
The 'jvmWithJava' preset is deprecated and will be removed soon. Please use an ordinary JVM target with Java support:
|
||||
|
||||
kotlin {
|
||||
jvm {
|
||||
withJava()
|
||||
}
|
||||
}
|
||||
|
||||
After this change, please move the Java sources to the Kotlin source set directories.
|
||||
For example, if the JVM target is given the default name 'jvm':
|
||||
* instead of 'src/main/java', use 'src/jvmMain/java'
|
||||
* instead of 'src/test/java', use 'src/jvmTest/java'
|
||||
""".trimIndent()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+6
-19
@@ -8,11 +8,13 @@ package org.jetbrains.kotlin.gradle.plugin.mpp
|
||||
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.plugins.JavaPlugin
|
||||
import org.jetbrains.kotlin.gradle.dsl.*
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptions
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptionsDefault
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions
|
||||
import org.jetbrains.kotlin.gradle.plugin.*
|
||||
import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget
|
||||
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics
|
||||
import org.jetbrains.kotlin.gradle.plugin.diagnostics.reportDiagnostic
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider
|
||||
import org.jetbrains.kotlin.gradle.utils.SingleWarningPerBuild
|
||||
import org.jetbrains.kotlin.gradle.utils.configureExperimentalTryK2
|
||||
|
||||
class KotlinJvmWithJavaTargetPreset(
|
||||
@@ -22,10 +24,7 @@ class KotlinJvmWithJavaTargetPreset(
|
||||
override fun getName(): String = PRESET_NAME
|
||||
|
||||
override fun createTarget(name: String): KotlinWithJavaTarget<KotlinJvmOptions, KotlinJvmCompilerOptions> {
|
||||
SingleWarningPerBuild.show(
|
||||
project,
|
||||
DEPRECATION_WARNING
|
||||
)
|
||||
project.reportDiagnostic(KotlinToolingDiagnostics.DeprecatedJvmWithJavaPresetDiagnostic())
|
||||
|
||||
project.plugins.apply(JavaPlugin::class.java)
|
||||
|
||||
@@ -83,17 +82,5 @@ class KotlinJvmWithJavaTargetPreset(
|
||||
|
||||
companion object {
|
||||
const val PRESET_NAME = "jvmWithJava"
|
||||
|
||||
val DEPRECATION_WARNING = "\nThe 'jvmWithJava' preset is deprecated and will be removed soon. " +
|
||||
"Please use an ordinary JVM target with Java support: \n\n" +
|
||||
" kotlin { \n" +
|
||||
" jvm { \n" +
|
||||
" ${KotlinJvmTarget::withJava.name}() \n" +
|
||||
" } \n" +
|
||||
" }\n\n" +
|
||||
"After this change, please move the Java sources to the Kotlin source set directories. " +
|
||||
"For example, if the JVM target is given the default name 'jvm':\n" +
|
||||
" * instead of 'src/main/java', use 'src/jvmMain/java'\n" +
|
||||
" * instead of 'src/test/java', use 'src/jvmTest/java'\n"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user