MPP: Populate BuildScriptClasspathData if it's absent
This happens when Java support is not available in the IDE (e.g. in CLion)
This commit is contained in:
+16
@@ -33,6 +33,7 @@ import org.jetbrains.kotlin.gradle.*
|
||||
import org.jetbrains.kotlin.idea.configuration.GradlePropertiesFileFacade.Companion.KOTLIN_NOT_IMPORTED_COMMON_SOURCE_SETS_SETTING
|
||||
import org.jetbrains.kotlin.idea.platform.IdePlatformKindTooling
|
||||
import org.jetbrains.plugins.gradle.model.*
|
||||
import org.jetbrains.plugins.gradle.model.data.BuildScriptClasspathData
|
||||
import org.jetbrains.plugins.gradle.model.data.GradleSourceSetData
|
||||
import org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension
|
||||
import org.jetbrains.plugins.gradle.service.project.GradleProjectResolver
|
||||
@@ -60,6 +61,21 @@ open class KotlinMPPGradleProjectResolver : AbstractProjectResolverExtension() {
|
||||
}
|
||||
}
|
||||
|
||||
override fun populateModuleExtraModels(gradleModule: IdeaModule, ideModule: DataNode<ModuleData>) {
|
||||
if (ExternalSystemApiUtil.find(ideModule, BuildScriptClasspathData.KEY) == null) {
|
||||
val buildScriptClasspathModel = resolverCtx.getExtraProject(gradleModule, BuildScriptClasspathModel::class.java)
|
||||
val classpathEntries = buildScriptClasspathModel?.classpath?.map {
|
||||
BuildScriptClasspathData.ClasspathEntry(it.classes, it.sources, it.javadoc)
|
||||
} ?: emptyList()
|
||||
val buildScriptClasspathData = BuildScriptClasspathData(GradleConstants.SYSTEM_ID, classpathEntries).also {
|
||||
it.gradleHomeDir = buildScriptClasspathModel?.gradleHomeDir
|
||||
}
|
||||
ideModule.createChild(BuildScriptClasspathData.KEY, buildScriptClasspathData)
|
||||
}
|
||||
|
||||
super.populateModuleExtraModels(gradleModule, ideModule)
|
||||
}
|
||||
|
||||
override fun populateModuleContentRoots(gradleModule: IdeaModule, ideModule: DataNode<ModuleData>) {
|
||||
if (resolverCtx.getExtraProject(gradleModule, KotlinMPPGradleModel::class.java) == null) {
|
||||
return super.populateModuleContentRoots(gradleModule, ideModule)
|
||||
|
||||
Reference in New Issue
Block a user