Support pureKotlinSourceFolders for MPP projects

#KT-34271 Fixed
#KT-32963 Fixed
This commit is contained in:
Yaroslav Chernyshev
2020-07-03 16:40:25 +03:00
parent fde8a34c32
commit f490085142
6 changed files with 38 additions and 11 deletions
@@ -296,8 +296,14 @@ class KotlinGradleProjectResolverExtension : AbstractProjectResolverExtension()
val moduleNamePrefix = GradleProjectResolverUtil.getModuleId(resolverCtx, gradleModule)
resolverCtx.getExtraProject(gradleModule, KotlinGradleModel::class.java)?.let { gradleModel ->
KotlinGradleFUSLogger.populateGradleUserDir(gradleModel.gradleUserHome)
ideModule.pureKotlinSourceFolders =
val gradleModelPureKotlinSourceFolders =
gradleModel.kotlinTaskProperties.flatMap { it.value.pureKotlinSourceFolders ?: emptyList() }.map { it.absolutePath }
ideModule.pureKotlinSourceFolders =
if (ideModule.pureKotlinSourceFolders.isEmpty())
gradleModelPureKotlinSourceFolders
else
gradleModelPureKotlinSourceFolders + ideModule.pureKotlinSourceFolders
val gradleSourceSets = ideModule.children.filter { it.data is GradleSourceSetData } as Collection<DataNode<GradleSourceSetData>>
for (gradleSourceSetNode in gradleSourceSets) {
val propertiesForSourceSet =
@@ -544,6 +544,16 @@ open class KotlinMPPGradleProjectResolver : AbstractProjectResolverExtensionComp
}
ideModule.createChild(ProjectKeys.CONTENT_ROOT, ideContentRoot)
}
val mppModelPureKotlinSourceFolders = mppModel.targets.flatMap { it.compilations }
.flatMap { it.kotlinTaskProperties.pureKotlinSourceFolders ?: emptyList() }
.map { it.absolutePath }
ideModule.pureKotlinSourceFolders =
if (ideModule.pureKotlinSourceFolders.isEmpty())
mppModelPureKotlinSourceFolders
else
mppModelPureKotlinSourceFolders + ideModule.pureKotlinSourceFolders
}
private data class CompilationWithDependencies(