Rebuild module on plugin classpaths change
Add another one reason for rebuild: if pluginClasspaths was changed or even its jar content, module will be marked for rebuild Merge-request: KT-MR-5839 Merged-by: Aleksei Cherepanov <aleksei.cherepanov@jetbrains.com>
This commit is contained in:
committed by
Space
parent
281e381223
commit
e0029b14ee
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.build
|
||||
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
|
||||
import org.jetbrains.kotlin.config.KotlinCompilerVersion
|
||||
import org.jetbrains.kotlin.config.LanguageVersion
|
||||
import org.jetbrains.kotlin.config.PluginClasspaths
|
||||
import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
@@ -23,6 +24,7 @@ interface BuildMetaInfo {
|
||||
val ownVersion: Int
|
||||
val coroutinesVersion: Int
|
||||
val multiplatformVersion: Int
|
||||
val pluginClasspaths: String
|
||||
}
|
||||
|
||||
abstract class BuildMetaInfoFactory<T : BuildMetaInfo>(private val metaInfoClass: KClass<T>) {
|
||||
@@ -35,7 +37,8 @@ abstract class BuildMetaInfoFactory<T : BuildMetaInfo>(private val metaInfoClass
|
||||
ownVersion: Int,
|
||||
coroutinesVersion: Int,
|
||||
multiplatformVersion: Int,
|
||||
metadataVersionArray: IntArray?
|
||||
metadataVersionArray: IntArray?,
|
||||
pluginClasspaths: String
|
||||
): T
|
||||
|
||||
fun create(args: CommonCompilerArguments): T {
|
||||
@@ -50,7 +53,8 @@ abstract class BuildMetaInfoFactory<T : BuildMetaInfo>(private val metaInfoClass
|
||||
ownVersion = OWN_VERSION,
|
||||
coroutinesVersion = COROUTINES_VERSION,
|
||||
multiplatformVersion = MULTIPLATFORM_VERSION,
|
||||
metadataVersionArray = args.metadataVersion?.let { BinaryVersion.parseVersionArray(it) }
|
||||
metadataVersionArray = args.metadataVersion?.let { BinaryVersion.parseVersionArray(it) },
|
||||
pluginClasspaths = PluginClasspaths(args.pluginClasspaths).serialize()
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,8 @@ data class CommonBuildMetaInfo(
|
||||
override val metadataVersionPatch: Int,
|
||||
override val ownVersion: Int,
|
||||
override val coroutinesVersion: Int,
|
||||
override val multiplatformVersion: Int
|
||||
override val multiplatformVersion: Int,
|
||||
override val pluginClasspaths: String
|
||||
) : BuildMetaInfo {
|
||||
companion object : BuildMetaInfoFactory<CommonBuildMetaInfo>(CommonBuildMetaInfo::class) {
|
||||
override fun create(
|
||||
@@ -33,7 +34,8 @@ data class CommonBuildMetaInfo(
|
||||
ownVersion: Int,
|
||||
coroutinesVersion: Int,
|
||||
multiplatformVersion: Int,
|
||||
metadataVersionArray: IntArray?
|
||||
metadataVersionArray: IntArray?,
|
||||
pluginClasspaths: String
|
||||
): CommonBuildMetaInfo {
|
||||
val metadataVersion = metadataVersionArray?.let(::JvmMetadataVersion) ?: JvmMetadataVersion.INSTANCE
|
||||
return CommonBuildMetaInfo(
|
||||
@@ -47,7 +49,8 @@ data class CommonBuildMetaInfo(
|
||||
metadataVersionPatch = metadataVersion.patch,
|
||||
ownVersion = ownVersion,
|
||||
coroutinesVersion = coroutinesVersion,
|
||||
multiplatformVersion = multiplatformVersion
|
||||
multiplatformVersion = multiplatformVersion,
|
||||
pluginClasspaths = pluginClasspaths
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,8 @@ data class JsBuildMetaInfo(
|
||||
override val metadataVersionPatch: Int,
|
||||
override val ownVersion: Int,
|
||||
override val coroutinesVersion: Int,
|
||||
override val multiplatformVersion: Int
|
||||
override val multiplatformVersion: Int,
|
||||
override val pluginClasspaths: String
|
||||
) : BuildMetaInfo {
|
||||
companion object : BuildMetaInfoFactory<JsBuildMetaInfo>(JsBuildMetaInfo::class) {
|
||||
override fun create(
|
||||
@@ -33,7 +34,8 @@ data class JsBuildMetaInfo(
|
||||
ownVersion: Int,
|
||||
coroutinesVersion: Int,
|
||||
multiplatformVersion: Int,
|
||||
metadataVersionArray: IntArray?
|
||||
metadataVersionArray: IntArray?,
|
||||
pluginClasspaths: String
|
||||
): JsBuildMetaInfo {
|
||||
val metadataVersion = metadataVersionArray?.let(::JsMetadataVersion) ?: JsMetadataVersion.INSTANCE
|
||||
return JsBuildMetaInfo(
|
||||
@@ -47,7 +49,8 @@ data class JsBuildMetaInfo(
|
||||
metadataVersionPatch = metadataVersion.patch,
|
||||
ownVersion = ownVersion,
|
||||
coroutinesVersion = coroutinesVersion,
|
||||
multiplatformVersion = multiplatformVersion
|
||||
multiplatformVersion = multiplatformVersion,
|
||||
pluginClasspaths = pluginClasspaths
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,7 +36,8 @@ data class JvmBuildMetaInfo(
|
||||
val bytecodeVersionPatch: Int,
|
||||
override val ownVersion: Int,
|
||||
override val coroutinesVersion: Int,
|
||||
override val multiplatformVersion: Int
|
||||
override val multiplatformVersion: Int,
|
||||
override val pluginClasspaths: String
|
||||
) : BuildMetaInfo {
|
||||
companion object : BuildMetaInfoFactory<JvmBuildMetaInfo>(JvmBuildMetaInfo::class) {
|
||||
override fun create(
|
||||
@@ -48,7 +49,8 @@ data class JvmBuildMetaInfo(
|
||||
ownVersion: Int,
|
||||
coroutinesVersion: Int,
|
||||
multiplatformVersion: Int,
|
||||
metadataVersionArray: IntArray?
|
||||
metadataVersionArray: IntArray?,
|
||||
pluginClasspaths: String
|
||||
): JvmBuildMetaInfo {
|
||||
val metadataVersion = metadataVersionArray?.let(::JvmMetadataVersion) ?: JvmMetadataVersion.INSTANCE
|
||||
return JvmBuildMetaInfo(
|
||||
@@ -65,7 +67,8 @@ data class JvmBuildMetaInfo(
|
||||
bytecodeVersionPatch = JvmBytecodeBinaryVersion.INSTANCE.patch,
|
||||
ownVersion = ownVersion,
|
||||
coroutinesVersion = coroutinesVersion,
|
||||
multiplatformVersion = multiplatformVersion
|
||||
multiplatformVersion = multiplatformVersion,
|
||||
pluginClasspaths = pluginClasspaths
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user