Fixed resolution of dependencies on js libraries compiled in both mode
#KT-39213 Fixed
This commit is contained in:
committed by
Ilya Goncharov
parent
e41b5fc1c6
commit
44f16eac2e
@@ -369,8 +369,9 @@ class KotlinMPPGradleModelBuilder : ModelBuilderService {
|
|||||||
targetClass.getMethodOrNull("getUseDisambiguitionClassifierAsSourcesetNamePreffix")?.invoke(gradleTarget) as? Boolean ?: true
|
targetClass.getMethodOrNull("getUseDisambiguitionClassifierAsSourcesetNamePreffix")?.invoke(gradleTarget) as? Boolean ?: true
|
||||||
val disambiguationClassifier = if (useDisambiguationClassifier)
|
val disambiguationClassifier = if (useDisambiguationClassifier)
|
||||||
getDisambiguationClassifier(gradleTarget) as? String
|
getDisambiguationClassifier(gradleTarget) as? String
|
||||||
else
|
else {
|
||||||
null
|
targetClass.getMethodOrNull("getOverrideDisambiguitionClassifierOnIdeImport")?.invoke(gradleTarget) as? String
|
||||||
|
}
|
||||||
val getPreset = targetClass.getMethodOrNull("getPreset")
|
val getPreset = targetClass.getMethodOrNull("getPreset")
|
||||||
val targetPresetName: String?
|
val targetPresetName: String?
|
||||||
targetPresetName = try {
|
targetPresetName = try {
|
||||||
|
|||||||
+1
@@ -29,6 +29,7 @@ interface KotlinTarget : Named, HasAttributes {
|
|||||||
val targetName: String
|
val targetName: String
|
||||||
val disambiguationClassifier: String? get() = targetName
|
val disambiguationClassifier: String? get() = targetName
|
||||||
val useDisambiguitionClassifierAsSourcesetNamePreffix: Boolean
|
val useDisambiguitionClassifierAsSourcesetNamePreffix: Boolean
|
||||||
|
val overrideDisambiguitionClassifierOnIdeImport: String?
|
||||||
|
|
||||||
val platformType: KotlinPlatformType
|
val platformType: KotlinPlatformType
|
||||||
|
|
||||||
|
|||||||
+3
@@ -24,6 +24,8 @@ abstract class KotlinOnlyTargetPreset<R : KotlinOnlyTarget<T>, T : KotlinCompila
|
|||||||
// This function is used in IDE import in order to indicate that sourceSetName=disambiguitionClassifier+compilationName
|
// This function is used in IDE import in order to indicate that sourceSetName=disambiguitionClassifier+compilationName
|
||||||
protected open fun useDisambiguitionClassifierAsSourcesetNamePreffix() = true
|
protected open fun useDisambiguitionClassifierAsSourcesetNamePreffix() = true
|
||||||
|
|
||||||
|
protected open fun overrideDisambiguitionClassifierOnIdeImport(): String? = null
|
||||||
|
|
||||||
abstract protected fun instantiateTarget(name: String): R
|
abstract protected fun instantiateTarget(name: String): R
|
||||||
|
|
||||||
override fun createTarget(name: String): R {
|
override fun createTarget(name: String): R {
|
||||||
@@ -31,6 +33,7 @@ abstract class KotlinOnlyTargetPreset<R : KotlinOnlyTarget<T>, T : KotlinCompila
|
|||||||
targetName = name
|
targetName = name
|
||||||
disambiguationClassifier = provideTargetDisambiguationClassifier(this@apply)
|
disambiguationClassifier = provideTargetDisambiguationClassifier(this@apply)
|
||||||
useDisambiguitionClassifierAsSourcesetNamePreffix = useDisambiguitionClassifierAsSourcesetNamePreffix()
|
useDisambiguitionClassifierAsSourcesetNamePreffix = useDisambiguitionClassifierAsSourcesetNamePreffix()
|
||||||
|
overrideDisambiguitionClassifierOnIdeImport = overrideDisambiguitionClassifierOnIdeImport()
|
||||||
preset = this@KotlinOnlyTargetPreset
|
preset = this@KotlinOnlyTargetPreset
|
||||||
|
|
||||||
val compilationFactory = createCompilationFactory(this)
|
val compilationFactory = createCompilationFactory(this)
|
||||||
|
|||||||
+3
@@ -46,6 +46,9 @@ abstract class AbstractKotlinTarget(
|
|||||||
override var useDisambiguitionClassifierAsSourcesetNamePreffix: Boolean = true
|
override var useDisambiguitionClassifierAsSourcesetNamePreffix: Boolean = true
|
||||||
internal set
|
internal set
|
||||||
|
|
||||||
|
override var overrideDisambiguitionClassifierOnIdeImport: String? = null
|
||||||
|
internal set
|
||||||
|
|
||||||
override val apiElementsConfigurationName: String
|
override val apiElementsConfigurationName: String
|
||||||
get() = disambiguateName("apiElements")
|
get() = disambiguateName("apiElements")
|
||||||
|
|
||||||
|
|||||||
+10
@@ -33,6 +33,16 @@ open class KotlinJsTargetPreset(
|
|||||||
|
|
||||||
override fun useDisambiguitionClassifierAsSourcesetNamePreffix() = false
|
override fun useDisambiguitionClassifierAsSourcesetNamePreffix() = false
|
||||||
|
|
||||||
|
override fun overrideDisambiguitionClassifierOnIdeImport(): String? = if (isMpp) {
|
||||||
|
irPreset?.let {
|
||||||
|
name.removeJsCompilerSuffix(KotlinJsCompilerType.LEGACY)
|
||||||
|
.removeJsCompilerSuffix(KotlinJsCompilerType.IR)
|
||||||
|
.removeJsCompilerSuffix(KotlinJsCompilerType.BOTH)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
null
|
||||||
|
}
|
||||||
|
|
||||||
override fun instantiateTarget(name: String): KotlinJsTarget {
|
override fun instantiateTarget(name: String): KotlinJsTarget {
|
||||||
return project.objects.newInstance(
|
return project.objects.newInstance(
|
||||||
KotlinJsTarget::class.java,
|
KotlinJsTarget::class.java,
|
||||||
|
|||||||
Reference in New Issue
Block a user