Fix localToProject=public not set for K/N configurations, KT-48370

This commit is contained in:
Sergey Igushkin
2021-08-25 15:15:56 +03:00
committed by Space
parent 0213c25c9b
commit 8b37b5f259
2 changed files with 17 additions and 6 deletions
@@ -5,13 +5,10 @@
package org.jetbrains.kotlin.gradle.native
import org.jetbrains.kotlin.gradle.BaseGradleIT
import org.jetbrains.kotlin.gradle.GradleVersionRequired
import org.jetbrains.kotlin.gradle.*
import org.jetbrains.kotlin.gradle.embedProject
import org.jetbrains.kotlin.gradle.transformProjectWithPluginsDsl
import org.jetbrains.kotlin.gradle.util.addBeforeSubstring
import org.jetbrains.kotlin.gradle.util.checkedReplace
import org.jetbrains.kotlin.gradle.util.modify
import org.jetbrains.kotlin.gradle.util.runProcess
import org.jetbrains.kotlin.gradle.util.*
import org.jetbrains.kotlin.konan.target.HostManager
import org.junit.Assume
import org.junit.BeforeClass
@@ -195,6 +192,19 @@ class FatFrameworkIT : BaseGradleIT() {
}
}
/**
* Test that the configurations exposing the frameworks don't interfere with variant-aware dependency resolution
*/
@Test
fun testDependencyResolution() = with(transformProjectWithPluginsDsl("smoke", directoryPrefix = "native-fat-framework")) {
setupWorkingDir()
val nestedProjectName = "nested"
embedProject(this, nestedProjectName)
gradleBuildScript(nestedProjectName).modify { it.replace(".version(\"$KOTLIN_VERSION\")", "") }
gradleBuildScript().appendText("dependencies { \"commonMainImplementation\"(project(\":$nestedProjectName\")) }")
testResolveAllConfigurations()
}
companion object {
@BeforeClass
@JvmStatic
@@ -82,6 +82,7 @@ open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget> : AbstractKotl
linkTask: TaskProvider<KotlinNativeLink>
) {
fun <T : Task> Configuration.configureConfiguration(taskProvider: TaskProvider<T>) {
setupAsPublicConfigurationIfSupported(binary.target)
project.afterEvaluate {
val task = taskProvider.get()
val artifactFile = when (task) {