[imltogradle] Fix kotlinc libs generator
kotlinc libs were changed from maven libs to plain JPS libs which contain `../build/repo` jars KT-MR-5457
This commit is contained in:
+27
-17
@@ -20,7 +20,9 @@ import java.io.File
|
|||||||
|
|
||||||
private lateinit var intellijModuleNameToGradleDependencyNotationsMapping: Map<String, List<GradleDependencyNotation>>
|
private lateinit var intellijModuleNameToGradleDependencyNotationsMapping: Map<String, List<GradleDependencyNotation>>
|
||||||
private val KOTLIN_REPO_ROOT = File(".").canonicalFile
|
private val KOTLIN_REPO_ROOT = File(".").canonicalFile
|
||||||
val DEFAULT_KOTLIN_SNAPSHOT_VERSION = KOTLIN_REPO_ROOT.resolve("gradle.properties").readProperty("defaultSnapshotVersion")
|
val DEFAULT_KOTLIN_SNAPSHOT_VERSION = KOTLIN_REPO_ROOT.resolve("gradle.properties")
|
||||||
|
.readProperty("defaultSnapshotVersion")
|
||||||
|
.removeSuffix("-SNAPSHOT")
|
||||||
private val INTELLIJ_REPO_ROOT = KOTLIN_REPO_ROOT.resolve("intellij").resolve("community").takeIf { it.exists() }
|
private val INTELLIJ_REPO_ROOT = KOTLIN_REPO_ROOT.resolve("intellij").resolve("community").takeIf { it.exists() }
|
||||||
?: KOTLIN_REPO_ROOT.resolve("intellij")
|
?: KOTLIN_REPO_ROOT.resolve("intellij")
|
||||||
|
|
||||||
@@ -112,7 +114,31 @@ fun convertJpsLibrary(lib: JpsLibrary, scope: JpsJavaDependencyScope, exported:
|
|||||||
val mavenRepositoryLibraryDescriptor = lib.properties
|
val mavenRepositoryLibraryDescriptor = lib.properties
|
||||||
.safeAs<JpsSimpleElement<*>>()?.data?.safeAs<JpsMavenRepositoryLibraryDescriptor>()
|
.safeAs<JpsSimpleElement<*>>()?.data?.safeAs<JpsMavenRepositoryLibraryDescriptor>()
|
||||||
|
|
||||||
|
val kotlincArtifactId = lib.getRootUrls(JpsOrderRootType.COMPILED).asSequence()
|
||||||
|
.mapNotNull { url ->
|
||||||
|
url.removeSuffix(".jar!/")
|
||||||
|
.takeIf { it.endsWith(DEFAULT_KOTLIN_SNAPSHOT_VERSION) }
|
||||||
|
?.removeSuffix("-$DEFAULT_KOTLIN_SNAPSHOT_VERSION")
|
||||||
|
?.substringAfterLast("/")
|
||||||
|
}
|
||||||
|
.firstOrNull()
|
||||||
|
|
||||||
return when {
|
return when {
|
||||||
|
lib.name == "kotlin-stdlib-jdk8" || lib.name == "kotlinc.kotlin-stdlib" -> {
|
||||||
|
listOf(
|
||||||
|
JpsLikeJarDependency("kotlinStdlib()", scope, dependencyConfiguration = null, exported = exported),
|
||||||
|
// TODO remove hack (for some reason we have to specify :kotlin-stdlib-jdk7 explicitly, otherwise compilation doesn't pass)
|
||||||
|
JpsLikeJarDependency("project(\":kotlin-stdlib-jdk7\")", scope, dependencyConfiguration = null, exported = exported)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
kotlincArtifactId != null -> {
|
||||||
|
val dependencyNotation =
|
||||||
|
if (KOTLIN_REPO_ROOT.resolve("prepare/ide-plugin-dependencies/$kotlincArtifactId").exists())
|
||||||
|
"project(\":prepare:ide-plugin-dependencies:$kotlincArtifactId\")"
|
||||||
|
else
|
||||||
|
"project(\":$kotlincArtifactId\")"
|
||||||
|
listOf(JpsLikeJarDependency(dependencyNotation, scope, dependencyConfiguration = null, exported = exported))
|
||||||
|
}
|
||||||
mavenRepositoryLibraryDescriptor == null -> {
|
mavenRepositoryLibraryDescriptor == null -> {
|
||||||
lib.getRootUrls(JpsOrderRootType.COMPILED)
|
lib.getRootUrls(JpsOrderRootType.COMPILED)
|
||||||
.map {
|
.map {
|
||||||
@@ -130,22 +156,6 @@ fun convertJpsLibrary(lib: JpsLibrary, scope: JpsJavaDependencyScope, exported:
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lib.name == "kotlin-stdlib-jdk8" -> {
|
|
||||||
listOf(
|
|
||||||
JpsLikeJarDependency("kotlinStdlib()", scope, dependencyConfiguration = null, exported = exported),
|
|
||||||
// TODO remove hack (for some reason we have to specify :kotlin-stdlib-jdk7 explicitly, otherwise compilation doesn't pass)
|
|
||||||
JpsLikeJarDependency("project(\":kotlin-stdlib-jdk7\")", scope, dependencyConfiguration = null, exported = exported)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
lib.name.startsWith("kotlinc.") || mavenRepositoryLibraryDescriptor.version == DEFAULT_KOTLIN_SNAPSHOT_VERSION -> {
|
|
||||||
val artifactId = mavenRepositoryLibraryDescriptor.artifactId
|
|
||||||
val dependencyNotation =
|
|
||||||
if (KOTLIN_REPO_ROOT.resolve("prepare/ide-plugin-dependencies/$artifactId").exists())
|
|
||||||
"project(\":prepare:ide-plugin-dependencies:$artifactId\")"
|
|
||||||
else
|
|
||||||
"project(\":${mavenRepositoryLibraryDescriptor.artifactId}\")"
|
|
||||||
listOf(JpsLikeJarDependency(dependencyNotation, scope, dependencyConfiguration = null, exported = exported))
|
|
||||||
}
|
|
||||||
else -> {
|
else -> {
|
||||||
val dependencyNotation = "\"${mavenRepositoryLibraryDescriptor.mavenId}\""
|
val dependencyNotation = "\"${mavenRepositoryLibraryDescriptor.mavenId}\""
|
||||||
val dependencyConfiguration =
|
val dependencyConfiguration =
|
||||||
|
|||||||
Reference in New Issue
Block a user