diff --git a/backend.native/tests/build.gradle b/backend.native/tests/build.gradle index 19ff06e0534..d0b0c748d21 100644 --- a/backend.native/tests/build.gradle +++ b/backend.native/tests/build.gradle @@ -2683,7 +2683,6 @@ if (isMac() && project.testTarget != 'wasm32') { } } swiftSources = ['framework/values/values.swift'] - dependsOn "compileKonan${frameworkName}" } task testStdlibFramework(type: FrameworkTest) { @@ -2699,7 +2698,6 @@ if (isMac() && project.testTarget != 'wasm32') { } } swiftSources = ['framework/stdlib/stdlib.swift'] - dependsOn "compileKonan${frameworkName}" } } diff --git a/buildSrc/plugins/src/main/groovy/org/jetbrains/kotlin/KonanTest.groovy b/buildSrc/plugins/src/main/groovy/org/jetbrains/kotlin/KonanTest.groovy index bc4ce72d952..11e4fdcbe2a 100644 --- a/buildSrc/plugins/src/main/groovy/org/jetbrains/kotlin/KonanTest.groovy +++ b/buildSrc/plugins/src/main/groovy/org/jetbrains/kotlin/KonanTest.groovy @@ -80,7 +80,7 @@ abstract class KonanTest extends JavaExec { if (project.testTarget) { // if a test_target property is set then tests should depend on a crossDist // otherwise runtime components would not be build for a target - dependsOn(project.rootProject.tasks['crossDist']) + dependsOn(project.rootProject.tasks["${target}CrossDist"]) } } } @@ -327,6 +327,10 @@ class BuildKonanTest extends ExtKonanTest { public List compileList public List excludeList + BuildKonanTest() { + super() + } + @Override List buildCompileList() { assert compileList != null diff --git a/buildSrc/plugins/src/main/kotlin/org/jetbrains/kotlin/FrameworkTest.kt b/buildSrc/plugins/src/main/kotlin/org/jetbrains/kotlin/FrameworkTest.kt index 77db38e7c17..6a89037f6cc 100644 --- a/buildSrc/plugins/src/main/kotlin/org/jetbrains/kotlin/FrameworkTest.kt +++ b/buildSrc/plugins/src/main/kotlin/org/jetbrains/kotlin/FrameworkTest.kt @@ -1,6 +1,10 @@ package org.jetbrains.kotlin +import groovy.lang.Closure +import org.gradle.api.Action import org.gradle.api.DefaultTask +import org.gradle.api.Project +import org.gradle.api.Task import org.gradle.api.tasks.Input import org.gradle.api.tasks.SourceSet import org.gradle.api.tasks.SourceSetContainer @@ -33,6 +37,21 @@ open class FrameworkTest : DefaultTask() { ?: throw RuntimeException("Empty sourceSet") } + override fun configure(config: Closure<*>): Task { + super.configure(config) + val target = project.testTarget().name + + // set crossdist build dependency if custom konan.home wasn't set + if (!(project.property("useCustomDist") as Boolean)) { + setRootDependency("${target}CrossDist", "${target}CrossDistRuntime", "commonDistRuntime", "distCompiler") + } + check(::frameworkName.isInitialized, { "Framework name should be set" }) + dependsOn(project.tasks.getByName("compileKonan$frameworkName")) + return this + } + + private fun setRootDependency(vararg s: String) = s.forEach { dependsOn(project.rootProject.tasks.getByName(it)) } + @TaskAction fun run() { val frameworkPath = "$testOutput/$frameworkName/${project.testTarget().name}"