Fix creation of Android source roots
#KT-30464 Fixed
This commit is contained in:
+1
-1
@@ -196,7 +196,7 @@ class KotlinGradleProjectResolverExtension : AbstractProjectResolverExtension()
|
|||||||
if (LOG.isDebugEnabled) {
|
if (LOG.isDebugEnabled) {
|
||||||
LOG.debug("Start populate module dependencies. Gradle module: [$gradleModule], Ide module: [$ideModule], Ide project: [$ideProject]")
|
LOG.debug("Start populate module dependencies. Gradle module: [$gradleModule], Ide module: [$ideModule], Ide project: [$ideProject]")
|
||||||
}
|
}
|
||||||
val mppModel = resolverCtx.getExtraProject(gradleModule, KotlinMPPGradleModel::class.java)
|
val mppModel = resolverCtx.getExtraProject(gradleModule, KotlinMPPGradleModel::class.java)?.let { KotlinMPPGradleModelImpl(it) }
|
||||||
if (mppModel != null) {
|
if (mppModel != null) {
|
||||||
mppModel.targets.forEach { target ->
|
mppModel.targets.forEach { target ->
|
||||||
KotlinStatisticsTrigger.trigger(
|
KotlinStatisticsTrigger.trigger(
|
||||||
|
|||||||
+6
-4
@@ -83,7 +83,7 @@ open class KotlinMPPGradleProjectResolver : AbstractProjectResolverExtension() {
|
|||||||
super.populateModuleCompileOutputSettings(gradleModule, ideModule)
|
super.populateModuleCompileOutputSettings(gradleModule, ideModule)
|
||||||
}
|
}
|
||||||
|
|
||||||
val mppModel = resolverCtx.getExtraProject(gradleModule, KotlinMPPGradleModel::class.java) ?: return
|
val mppModel = resolverCtx.getExtraProject(gradleModule, KotlinMPPGradleModel::class.java)?.let { KotlinMPPGradleModelImpl(it) } ?: return
|
||||||
val ideaOutDir = File(ideModule.data.linkedExternalProjectPath, "out")
|
val ideaOutDir = File(ideModule.data.linkedExternalProjectPath, "out")
|
||||||
val projectDataNode = ideModule.getDataNode(ProjectKeys.PROJECT)!!
|
val projectDataNode = ideModule.getDataNode(ProjectKeys.PROJECT)!!
|
||||||
val moduleOutputsMap = projectDataNode.getUserData(MODULES_OUTPUTS)!!
|
val moduleOutputsMap = projectDataNode.getUserData(MODULES_OUTPUTS)!!
|
||||||
@@ -164,7 +164,7 @@ open class KotlinMPPGradleProjectResolver : AbstractProjectResolverExtension() {
|
|||||||
val mainModuleFileDirectoryPath = mainModuleData.moduleFileDirectoryPath
|
val mainModuleFileDirectoryPath = mainModuleData.moduleFileDirectoryPath
|
||||||
|
|
||||||
val externalProject = resolverCtx.getExtraProject(gradleModule, ExternalProject::class.java)
|
val externalProject = resolverCtx.getExtraProject(gradleModule, ExternalProject::class.java)
|
||||||
val mppModel = resolverCtx.getExtraProject(gradleModule, KotlinMPPGradleModel::class.java)
|
val mppModel = resolverCtx.getExtraProject(gradleModule, KotlinMPPGradleModel::class.java)?.let { KotlinMPPGradleModelImpl(it) }
|
||||||
if (mppModel == null || externalProject == null) return
|
if (mppModel == null || externalProject == null) return
|
||||||
|
|
||||||
val jdkName = gradleModule.jdkNameIfAny
|
val jdkName = gradleModule.jdkNameIfAny
|
||||||
@@ -311,7 +311,8 @@ open class KotlinMPPGradleProjectResolver : AbstractProjectResolverExtension() {
|
|||||||
ideModule: DataNode<ModuleData>,
|
ideModule: DataNode<ModuleData>,
|
||||||
resolverCtx: ProjectResolverContext
|
resolverCtx: ProjectResolverContext
|
||||||
) {
|
) {
|
||||||
val mppModel = resolverCtx.getExtraProject(gradleModule, KotlinMPPGradleModel::class.java) ?: return
|
val mppModel =
|
||||||
|
resolverCtx.getExtraProject(gradleModule, KotlinMPPGradleModel::class.java)?.let { KotlinMPPGradleModelImpl(it) } ?: return
|
||||||
if (resolverCtx.getExtraProject(gradleModule, ExternalProject::class.java) == null) return
|
if (resolverCtx.getExtraProject(gradleModule, ExternalProject::class.java) == null) return
|
||||||
processSourceSets(gradleModule, mppModel, ideModule, resolverCtx) { dataNode, sourceSet ->
|
processSourceSets(gradleModule, mppModel, ideModule, resolverCtx) { dataNode, sourceSet ->
|
||||||
if (dataNode == null || sourceSet.platform == KotlinPlatform.ANDROID) return@processSourceSets
|
if (dataNode == null || sourceSet.platform == KotlinPlatform.ANDROID) return@processSourceSets
|
||||||
@@ -338,7 +339,8 @@ open class KotlinMPPGradleProjectResolver : AbstractProjectResolverExtension() {
|
|||||||
ideModule: DataNode<ModuleData>,
|
ideModule: DataNode<ModuleData>,
|
||||||
resolverCtx: ProjectResolverContext
|
resolverCtx: ProjectResolverContext
|
||||||
) {
|
) {
|
||||||
val mppModel = resolverCtx.getExtraProject(gradleModule, KotlinMPPGradleModel::class.java) ?: return
|
val mppModel =
|
||||||
|
resolverCtx.getExtraProject(gradleModule, KotlinMPPGradleModel::class.java)?.let { KotlinMPPGradleModelImpl(it) } ?: return
|
||||||
val sourceSetMap = ideProject.getUserData(GradleProjectResolver.RESOLVED_SOURCE_SETS) ?: return
|
val sourceSetMap = ideProject.getUserData(GradleProjectResolver.RESOLVED_SOURCE_SETS) ?: return
|
||||||
val artifactsMap = ideProject.getUserData(CONFIGURATION_ARTIFACTS) ?: return
|
val artifactsMap = ideProject.getUserData(CONFIGURATION_ARTIFACTS) ?: return
|
||||||
val substitutor = KotlinNativeLibrariesDependencySubstitutor(mppModel, gradleModule, resolverCtx)
|
val substitutor = KotlinNativeLibrariesDependencySubstitutor(mppModel, gradleModule, resolverCtx)
|
||||||
|
|||||||
@@ -13,7 +13,9 @@ data class KotlinSourceSetImpl(
|
|||||||
override val sourceDirs: Set<File>,
|
override val sourceDirs: Set<File>,
|
||||||
override val resourceDirs: Set<File>,
|
override val resourceDirs: Set<File>,
|
||||||
override val dependencies: Set<KotlinDependency>,
|
override val dependencies: Set<KotlinDependency>,
|
||||||
override val dependsOnSourceSets: Set<String>
|
override val dependsOnSourceSets: Set<String>,
|
||||||
|
val defaultPlatform: KotlinPlatform = KotlinPlatform.COMMON,
|
||||||
|
val defaultIsTestModule: Boolean = false
|
||||||
) : KotlinSourceSet {
|
) : KotlinSourceSet {
|
||||||
|
|
||||||
constructor(kotlinSourceSet: KotlinSourceSet) : this(
|
constructor(kotlinSourceSet: KotlinSourceSet) : this(
|
||||||
@@ -22,13 +24,15 @@ data class KotlinSourceSetImpl(
|
|||||||
HashSet(kotlinSourceSet.sourceDirs),
|
HashSet(kotlinSourceSet.sourceDirs),
|
||||||
HashSet(kotlinSourceSet.resourceDirs),
|
HashSet(kotlinSourceSet.resourceDirs),
|
||||||
kotlinSourceSet.dependencies.map { it.deepCopy() }.toSet(),
|
kotlinSourceSet.dependencies.map { it.deepCopy() }.toSet(),
|
||||||
HashSet(kotlinSourceSet.dependsOnSourceSets)
|
HashSet(kotlinSourceSet.dependsOnSourceSets),
|
||||||
|
kotlinSourceSet.platform,
|
||||||
|
kotlinSourceSet.isTestModule
|
||||||
)
|
)
|
||||||
|
|
||||||
override var platform: KotlinPlatform = KotlinPlatform.COMMON
|
override var platform: KotlinPlatform = defaultPlatform
|
||||||
internal set
|
internal set
|
||||||
|
|
||||||
override var isTestModule: Boolean = false
|
override var isTestModule: Boolean = defaultIsTestModule
|
||||||
internal set
|
internal set
|
||||||
|
|
||||||
override fun toString() = name
|
override fun toString() = name
|
||||||
@@ -121,6 +125,15 @@ data class KotlinTargetImpl(
|
|||||||
override val jar: KotlinTargetJar?
|
override val jar: KotlinTargetJar?
|
||||||
) : KotlinTarget {
|
) : KotlinTarget {
|
||||||
override fun toString() = name
|
override fun toString() = name
|
||||||
|
|
||||||
|
constructor(target: KotlinTarget) : this(
|
||||||
|
target.name,
|
||||||
|
target.presetName,
|
||||||
|
target.disambiguationClassifier,
|
||||||
|
KotlinPlatform.byId(target.platform.id) ?: KotlinPlatform.COMMON,
|
||||||
|
target.compilations.map { KotlinCompilationImpl(it) }.toList(),
|
||||||
|
KotlinTargetJarImpl(target.jar?.archiveFile)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
data class ExtraFeaturesImpl(
|
data class ExtraFeaturesImpl(
|
||||||
@@ -132,4 +145,12 @@ data class KotlinMPPGradleModelImpl(
|
|||||||
override val targets: Collection<KotlinTarget>,
|
override val targets: Collection<KotlinTarget>,
|
||||||
override val extraFeatures: ExtraFeatures,
|
override val extraFeatures: ExtraFeatures,
|
||||||
override val kotlinNativeHome: String
|
override val kotlinNativeHome: String
|
||||||
) : KotlinMPPGradleModel
|
) : KotlinMPPGradleModel {
|
||||||
|
|
||||||
|
constructor(mppModel: KotlinMPPGradleModel) : this(
|
||||||
|
mppModel.sourceSets.mapValues { KotlinSourceSetImpl(it.value) },
|
||||||
|
mppModel.targets.map { KotlinTargetImpl(it) }.toList(),
|
||||||
|
ExtraFeaturesImpl(mppModel.extraFeatures.coroutinesState),
|
||||||
|
mppModel.kotlinNativeHome
|
||||||
|
)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user