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)
|
||||
}
|
||||
|
||||
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,
|
||||
ideModule: DataNode<ModuleData>,
|
||||
ideProject: DataNode<ProjectData>) {
|
||||
@@ -76,7 +85,7 @@ class KotlinGradleProjectResolverExtension : AbstractProjectResolverExtension()
|
||||
if (this != ideModule) gradleIdeaProject.modules.firstOrNull { it.gradleProject.path == data.id } else gradleModule
|
||||
|
||||
fun DataNode<out ModuleData>.getDependencies(): Set<DataNode<out ModuleData>> {
|
||||
if (resolverCtx.isResolveModulePerSourceSet) {
|
||||
if (useModulePerSourceSet()) {
|
||||
if (sourceSetByName == null) return emptySet()
|
||||
val externalSourceSet = sourceSetByName[data.id]?.second ?: return emptySet()
|
||||
return externalSourceSet.dependencies.mapNotNullTo(LinkedHashSet()) { dependency ->
|
||||
@@ -111,7 +120,7 @@ class KotlinGradleProjectResolverExtension : AbstractProjectResolverExtension()
|
||||
}
|
||||
|
||||
fun addTransitiveDependenciesOnImplementedModules() {
|
||||
val moduleNodesToProcess = if (resolverCtx.isResolveModulePerSourceSet) {
|
||||
val moduleNodesToProcess = if (useModulePerSourceSet()) {
|
||||
ExternalSystemApiUtil.findAll(ideModule, GradleSourceSetData.KEY)
|
||||
}
|
||||
else listOf(ideModule)
|
||||
@@ -125,7 +134,7 @@ class KotlinGradleProjectResolverExtension : AbstractProjectResolverExtension()
|
||||
val moduleNode = toProcess.pollFirst()
|
||||
processed.add(moduleNode)
|
||||
|
||||
val moduleNodeForGradleModel = if (resolverCtx.isResolveModulePerSourceSet) {
|
||||
val moduleNodeForGradleModel = if (useModulePerSourceSet()) {
|
||||
ExternalSystemApiUtil.findParent(moduleNode, ProjectKeys.MODULE)
|
||||
}
|
||||
else moduleNode
|
||||
@@ -137,7 +146,7 @@ class KotlinGradleProjectResolverExtension : AbstractProjectResolverExtension()
|
||||
val implementsInfo = resolverCtx.getExtraProject(ideaModule, KotlinGradleModel::class.java)?.implements
|
||||
val targetModule = implementsInfo?.let { findModule(ideProject, it) }
|
||||
if (targetModule != null) {
|
||||
if (resolverCtx.isResolveModulePerSourceSet) {
|
||||
if (useModulePerSourceSet()) {
|
||||
val targetSourceSetsByName = ExternalSystemApiUtil
|
||||
.findAll(targetModule, GradleSourceSetData.KEY)
|
||||
.associateBy { it.sourceSetName }
|
||||
|
||||
Reference in New Issue
Block a user