Ignore "module per source set" option in Android projects
This commit is contained in:
+13
-4
@@ -61,6 +61,15 @@ class KotlinGradleProjectResolverExtension : AbstractProjectResolverExtension()
|
|||||||
return setOf(KotlinGradleModel::class.java)
|
return setOf(KotlinGradleModel::class.java)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun useModulePerSourceSet(): Boolean {
|
||||||
|
// See AndroidGradleProjectResolver
|
||||||
|
val isAndroidProjectKey = Key.findKeyByName("IS_ANDROID_PROJECT_KEY")
|
||||||
|
if (isAndroidProjectKey != null && resolverCtx.getUserData(isAndroidProjectKey) == true) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return resolverCtx.isResolveModulePerSourceSet
|
||||||
|
}
|
||||||
|
|
||||||
override fun populateModuleDependencies(gradleModule: IdeaModule,
|
override fun populateModuleDependencies(gradleModule: IdeaModule,
|
||||||
ideModule: DataNode<ModuleData>,
|
ideModule: DataNode<ModuleData>,
|
||||||
ideProject: DataNode<ProjectData>) {
|
ideProject: DataNode<ProjectData>) {
|
||||||
@@ -76,7 +85,7 @@ class KotlinGradleProjectResolverExtension : AbstractProjectResolverExtension()
|
|||||||
if (this != ideModule) gradleIdeaProject.modules.firstOrNull { it.gradleProject.path == data.id } else gradleModule
|
if (this != ideModule) gradleIdeaProject.modules.firstOrNull { it.gradleProject.path == data.id } else gradleModule
|
||||||
|
|
||||||
fun DataNode<out ModuleData>.getDependencies(): Set<DataNode<out ModuleData>> {
|
fun DataNode<out ModuleData>.getDependencies(): Set<DataNode<out ModuleData>> {
|
||||||
if (resolverCtx.isResolveModulePerSourceSet) {
|
if (useModulePerSourceSet()) {
|
||||||
if (sourceSetByName == null) return emptySet()
|
if (sourceSetByName == null) return emptySet()
|
||||||
val externalSourceSet = sourceSetByName[data.id]?.second ?: return emptySet()
|
val externalSourceSet = sourceSetByName[data.id]?.second ?: return emptySet()
|
||||||
return externalSourceSet.dependencies.mapNotNullTo(LinkedHashSet()) { dependency ->
|
return externalSourceSet.dependencies.mapNotNullTo(LinkedHashSet()) { dependency ->
|
||||||
@@ -111,7 +120,7 @@ class KotlinGradleProjectResolverExtension : AbstractProjectResolverExtension()
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun addTransitiveDependenciesOnImplementedModules() {
|
fun addTransitiveDependenciesOnImplementedModules() {
|
||||||
val moduleNodesToProcess = if (resolverCtx.isResolveModulePerSourceSet) {
|
val moduleNodesToProcess = if (useModulePerSourceSet()) {
|
||||||
ExternalSystemApiUtil.findAll(ideModule, GradleSourceSetData.KEY)
|
ExternalSystemApiUtil.findAll(ideModule, GradleSourceSetData.KEY)
|
||||||
}
|
}
|
||||||
else listOf(ideModule)
|
else listOf(ideModule)
|
||||||
@@ -125,7 +134,7 @@ class KotlinGradleProjectResolverExtension : AbstractProjectResolverExtension()
|
|||||||
val moduleNode = toProcess.pollFirst()
|
val moduleNode = toProcess.pollFirst()
|
||||||
processed.add(moduleNode)
|
processed.add(moduleNode)
|
||||||
|
|
||||||
val moduleNodeForGradleModel = if (resolverCtx.isResolveModulePerSourceSet) {
|
val moduleNodeForGradleModel = if (useModulePerSourceSet()) {
|
||||||
ExternalSystemApiUtil.findParent(moduleNode, ProjectKeys.MODULE)
|
ExternalSystemApiUtil.findParent(moduleNode, ProjectKeys.MODULE)
|
||||||
}
|
}
|
||||||
else moduleNode
|
else moduleNode
|
||||||
@@ -137,7 +146,7 @@ class KotlinGradleProjectResolverExtension : AbstractProjectResolverExtension()
|
|||||||
val implementsInfo = resolverCtx.getExtraProject(ideaModule, KotlinGradleModel::class.java)?.implements
|
val implementsInfo = resolverCtx.getExtraProject(ideaModule, KotlinGradleModel::class.java)?.implements
|
||||||
val targetModule = implementsInfo?.let { findModule(ideProject, it) }
|
val targetModule = implementsInfo?.let { findModule(ideProject, it) }
|
||||||
if (targetModule != null) {
|
if (targetModule != null) {
|
||||||
if (resolverCtx.isResolveModulePerSourceSet) {
|
if (useModulePerSourceSet()) {
|
||||||
val targetSourceSetsByName = ExternalSystemApiUtil
|
val targetSourceSetsByName = ExternalSystemApiUtil
|
||||||
.findAll(targetModule, GradleSourceSetData.KEY)
|
.findAll(targetModule, GradleSourceSetData.KEY)
|
||||||
.associateBy { it.sourceSetName }
|
.associateBy { it.sourceSetName }
|
||||||
|
|||||||
Reference in New Issue
Block a user