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) {
|
||||
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) {
|
||||
mppModel.targets.forEach { target ->
|
||||
KotlinStatisticsTrigger.trigger(
|
||||
|
||||
+6
-4
@@ -83,7 +83,7 @@ open class KotlinMPPGradleProjectResolver : AbstractProjectResolverExtension() {
|
||||
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 projectDataNode = ideModule.getDataNode(ProjectKeys.PROJECT)!!
|
||||
val moduleOutputsMap = projectDataNode.getUserData(MODULES_OUTPUTS)!!
|
||||
@@ -164,7 +164,7 @@ open class KotlinMPPGradleProjectResolver : AbstractProjectResolverExtension() {
|
||||
val mainModuleFileDirectoryPath = mainModuleData.moduleFileDirectoryPath
|
||||
|
||||
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
|
||||
|
||||
val jdkName = gradleModule.jdkNameIfAny
|
||||
@@ -311,7 +311,8 @@ open class KotlinMPPGradleProjectResolver : AbstractProjectResolverExtension() {
|
||||
ideModule: DataNode<ModuleData>,
|
||||
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
|
||||
processSourceSets(gradleModule, mppModel, ideModule, resolverCtx) { dataNode, sourceSet ->
|
||||
if (dataNode == null || sourceSet.platform == KotlinPlatform.ANDROID) return@processSourceSets
|
||||
@@ -338,7 +339,8 @@ open class KotlinMPPGradleProjectResolver : AbstractProjectResolverExtension() {
|
||||
ideModule: DataNode<ModuleData>,
|
||||
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 artifactsMap = ideProject.getUserData(CONFIGURATION_ARTIFACTS) ?: return
|
||||
val substitutor = KotlinNativeLibrariesDependencySubstitutor(mppModel, gradleModule, resolverCtx)
|
||||
|
||||
@@ -13,7 +13,9 @@ data class KotlinSourceSetImpl(
|
||||
override val sourceDirs: Set<File>,
|
||||
override val resourceDirs: Set<File>,
|
||||
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 {
|
||||
|
||||
constructor(kotlinSourceSet: KotlinSourceSet) : this(
|
||||
@@ -22,13 +24,15 @@ data class KotlinSourceSetImpl(
|
||||
HashSet(kotlinSourceSet.sourceDirs),
|
||||
HashSet(kotlinSourceSet.resourceDirs),
|
||||
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
|
||||
|
||||
override var isTestModule: Boolean = false
|
||||
override var isTestModule: Boolean = defaultIsTestModule
|
||||
internal set
|
||||
|
||||
override fun toString() = name
|
||||
@@ -121,6 +125,15 @@ data class KotlinTargetImpl(
|
||||
override val jar: KotlinTargetJar?
|
||||
) : KotlinTarget {
|
||||
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(
|
||||
@@ -132,4 +145,12 @@ data class KotlinMPPGradleModelImpl(
|
||||
override val targets: Collection<KotlinTarget>,
|
||||
override val extraFeatures: ExtraFeatures,
|
||||
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