Add target crossDist dependency for crosstarget testing.

Fix dependencies for framework tests
This commit is contained in:
Pavel Punegov
2018-04-19 16:02:12 +03:00
committed by Pavel Punegov
parent c10a437ef7
commit 633db41d70
3 changed files with 24 additions and 3 deletions
-2
View File
@@ -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}"
}
}
@@ -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<String> compileList
public List<String> excludeList
BuildKonanTest() {
super()
}
@Override
List<String> buildCompileList() {
assert compileList != null
@@ -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}"