[KPM] IdeaKotlinFragment: Add moduleIdentifier
KT-51262 KT-51220
This commit is contained in:
committed by
Space
parent
ed1036a358
commit
c56bf6b0e3
+1
@@ -60,6 +60,7 @@ public abstract interface class org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinF
|
|||||||
public abstract fun getDirectRefinesDependencies ()Ljava/util/List;
|
public abstract fun getDirectRefinesDependencies ()Ljava/util/List;
|
||||||
public abstract fun getExternal ()Lorg/jetbrains/kotlin/gradle/kpm/KotlinExternalModelContainer;
|
public abstract fun getExternal ()Lorg/jetbrains/kotlin/gradle/kpm/KotlinExternalModelContainer;
|
||||||
public abstract fun getLanguageSettings ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinLanguageSettings;
|
public abstract fun getLanguageSettings ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinLanguageSettings;
|
||||||
|
public abstract fun getModuleIdentifier ()Lorg/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinModuleIdentifier;
|
||||||
public abstract fun getName ()Ljava/lang/String;
|
public abstract fun getName ()Ljava/lang/String;
|
||||||
public abstract fun getResourceDirectories ()Ljava/util/List;
|
public abstract fun getResourceDirectories ()Ljava/util/List;
|
||||||
public abstract fun getSourceDirectories ()Ljava/util/List;
|
public abstract fun getSourceDirectories ()Ljava/util/List;
|
||||||
|
|||||||
+2
@@ -10,6 +10,7 @@ import java.io.Serializable
|
|||||||
|
|
||||||
interface IdeaKotlinFragment : Serializable {
|
interface IdeaKotlinFragment : Serializable {
|
||||||
val name: String
|
val name: String
|
||||||
|
val moduleIdentifier: IdeaKotlinModuleIdentifier
|
||||||
val languageSettings: IdeaKotlinLanguageSettings?
|
val languageSettings: IdeaKotlinLanguageSettings?
|
||||||
val dependencies: List<IdeaKotlinFragmentDependency>
|
val dependencies: List<IdeaKotlinFragmentDependency>
|
||||||
val directRefinesDependencies: List<IdeaKotlinFragment>
|
val directRefinesDependencies: List<IdeaKotlinFragment>
|
||||||
@@ -21,6 +22,7 @@ interface IdeaKotlinFragment : Serializable {
|
|||||||
@InternalKotlinGradlePluginApi
|
@InternalKotlinGradlePluginApi
|
||||||
data class IdeaKotlinFragmentImpl(
|
data class IdeaKotlinFragmentImpl(
|
||||||
override val name: String,
|
override val name: String,
|
||||||
|
override val moduleIdentifier: IdeaKotlinModuleIdentifier,
|
||||||
override val languageSettings: IdeaKotlinLanguageSettings?,
|
override val languageSettings: IdeaKotlinLanguageSettings?,
|
||||||
override val dependencies: List<IdeaKotlinFragmentDependency>,
|
override val dependencies: List<IdeaKotlinFragmentDependency>,
|
||||||
override val directRefinesDependencies: List<IdeaKotlinFragment>,
|
override val directRefinesDependencies: List<IdeaKotlinFragment>,
|
||||||
|
|||||||
+5
-4
@@ -10,10 +10,10 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragment
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragmentInternal
|
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragmentInternal
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleVariant
|
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleVariant
|
||||||
|
|
||||||
private typealias FragmentInterner = MutableMap<KotlinGradleFragment, IdeaKotlinFragment>
|
private typealias IdeaKotlinFragmentBuilderCache = MutableMap<KotlinGradleFragment, IdeaKotlinFragment>
|
||||||
|
|
||||||
internal fun KotlinGradleFragment.toIdeaKotlinFragment(
|
internal fun KotlinGradleFragment.toIdeaKotlinFragment(
|
||||||
cache: FragmentInterner = mutableMapOf()
|
cache: IdeaKotlinFragmentBuilderCache = mutableMapOf()
|
||||||
): IdeaKotlinFragment {
|
): IdeaKotlinFragment {
|
||||||
return cache.getOrPut(this) {
|
return cache.getOrPut(this) {
|
||||||
if (this is KotlinGradleVariant) buildIdeaKotlinVariant(cache)
|
if (this is KotlinGradleVariant) buildIdeaKotlinVariant(cache)
|
||||||
@@ -21,9 +21,10 @@ internal fun KotlinGradleFragment.toIdeaKotlinFragment(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun KotlinGradleFragment.buildIdeaKotlinFragment(cache: FragmentInterner): IdeaKotlinFragment {
|
private fun KotlinGradleFragment.buildIdeaKotlinFragment(cache: IdeaKotlinFragmentBuilderCache): IdeaKotlinFragment {
|
||||||
return IdeaKotlinFragmentImpl(
|
return IdeaKotlinFragmentImpl(
|
||||||
name = name,
|
name = name,
|
||||||
|
moduleIdentifier = containingModule.moduleIdentifier.toIdeaKotlinModuleIdentifier(),
|
||||||
languageSettings = languageSettings.toIdeaKotlinLanguageSettings(),
|
languageSettings = languageSettings.toIdeaKotlinLanguageSettings(),
|
||||||
dependencies = emptyList(),
|
dependencies = emptyList(),
|
||||||
directRefinesDependencies = directRefinesDependencies.map { refinesFragment ->
|
directRefinesDependencies = directRefinesDependencies.map { refinesFragment ->
|
||||||
@@ -37,7 +38,7 @@ private fun KotlinGradleFragment.buildIdeaKotlinFragment(cache: FragmentInterner
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun KotlinGradleVariant.buildIdeaKotlinVariant(cache: FragmentInterner): IdeaKotlinVariant {
|
private fun KotlinGradleVariant.buildIdeaKotlinVariant(cache: IdeaKotlinFragmentBuilderCache): IdeaKotlinVariant {
|
||||||
return IdeaKotlinVariantImpl(
|
return IdeaKotlinVariantImpl(
|
||||||
fragment = buildIdeaKotlinFragment(cache),
|
fragment = buildIdeaKotlinFragment(cache),
|
||||||
variantAttributes = variantAttributes.mapKeys { (key, _) -> key.uniqueName },
|
variantAttributes = variantAttributes.mapKeys { (key, _) -> key.uniqueName },
|
||||||
|
|||||||
Reference in New Issue
Block a user