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
|
||||
val disambiguationClassifier = if (useDisambiguationClassifier)
|
||||
getDisambiguationClassifier(gradleTarget) as? String
|
||||
else
|
||||
null
|
||||
else {
|
||||
targetClass.getMethodOrNull("getOverrideDisambiguitionClassifierOnIdeImport")?.invoke(gradleTarget) as? String
|
||||
}
|
||||
val getPreset = targetClass.getMethodOrNull("getPreset")
|
||||
val targetPresetName: String?
|
||||
targetPresetName = try {
|
||||
|
||||
+1
@@ -29,6 +29,7 @@ interface KotlinTarget : Named, HasAttributes {
|
||||
val targetName: String
|
||||
val disambiguationClassifier: String? get() = targetName
|
||||
val useDisambiguitionClassifierAsSourcesetNamePreffix: Boolean
|
||||
val overrideDisambiguitionClassifierOnIdeImport: String?
|
||||
|
||||
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
|
||||
protected open fun useDisambiguitionClassifierAsSourcesetNamePreffix() = true
|
||||
|
||||
protected open fun overrideDisambiguitionClassifierOnIdeImport(): String? = null
|
||||
|
||||
abstract protected fun instantiateTarget(name: String): R
|
||||
|
||||
override fun createTarget(name: String): R {
|
||||
@@ -31,6 +33,7 @@ abstract class KotlinOnlyTargetPreset<R : KotlinOnlyTarget<T>, T : KotlinCompila
|
||||
targetName = name
|
||||
disambiguationClassifier = provideTargetDisambiguationClassifier(this@apply)
|
||||
useDisambiguitionClassifierAsSourcesetNamePreffix = useDisambiguitionClassifierAsSourcesetNamePreffix()
|
||||
overrideDisambiguitionClassifierOnIdeImport = overrideDisambiguitionClassifierOnIdeImport()
|
||||
preset = this@KotlinOnlyTargetPreset
|
||||
|
||||
val compilationFactory = createCompilationFactory(this)
|
||||
|
||||
+3
@@ -46,6 +46,9 @@ abstract class AbstractKotlinTarget(
|
||||
override var useDisambiguitionClassifierAsSourcesetNamePreffix: Boolean = true
|
||||
internal set
|
||||
|
||||
override var overrideDisambiguitionClassifierOnIdeImport: String? = null
|
||||
internal set
|
||||
|
||||
override val apiElementsConfigurationName: String
|
||||
get() = disambiguateName("apiElements")
|
||||
|
||||
|
||||
+10
@@ -33,6 +33,16 @@ open class KotlinJsTargetPreset(
|
||||
|
||||
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 {
|
||||
return project.objects.newInstance(
|
||||
KotlinJsTarget::class.java,
|
||||
|
||||
Reference in New Issue
Block a user