[Gradle] NativeExternalDependenciesIT: Build dependencies file at execution time

^KT-34662 Verification Pending
This commit is contained in:
Sebastian Sellmair
2023-03-13 13:13:32 +01:00
committed by Space Team
parent 4264e49970
commit 9517667081
3 changed files with 14 additions and 11 deletions
@@ -99,11 +99,10 @@ class NativeExternalDependenciesIT : BaseGradleIT() {
)
build(
"assemble",
options = defaultBuildOptions().copy(dryRun = true)
"buildExternalDependenciesFile"
) {
assertSuccessful()
assertTasksExecuted(":buildExternalDependenciesFile")
val kotlinNativeTargetName = findKotlinNativeTargetName(output)
assertNotNull(kotlinNativeTargetName)
@@ -17,12 +17,16 @@ kotlin {
}
}
afterEvaluate {
val externalDependenciesFile = Class.forName("org.jetbrains.kotlin.gradle.tasks.ExternalDependenciesBuilder")
.getDeclaredMethod("buildExternalDependenciesFileForTests", Project::class.java).apply { isAccessible = true }
.invoke(null, project)
?.toString().orEmpty()
val buildExternalDependenciesFile = tasks.register("buildExternalDependenciesFile") {
doLast {
val externalDependenciesFile = Class.forName("org.jetbrains.kotlin.gradle.tasks.ExternalDependenciesBuilder")
.getDeclaredMethod("buildExternalDependenciesFileForTests", Project::class.java).apply { isAccessible = true }
.invoke(null, project)
?.toString().orEmpty()
println("for_test_kotlin_native_target=<SingleNativeTarget>")
println("for_test_external_dependencies_file=$externalDependenciesFile")
println("for_test_kotlin_native_target=<SingleNativeTarget>")
println("for_test_external_dependencies_file=$externalDependenciesFile")
}
}
tasks.getByName("assemble").dependsOn(buildExternalDependenciesFile)
@@ -34,7 +34,7 @@ abstract class AbstractKotlinSourceSet : InternalKotlinSourceSet {
final override fun dependsOn(other: KotlinSourceSet) {
if (other == this) return
assert(project.kotlinPluginLifecycle.stage <= KotlinPluginLifecycle.Stage.FinaliseRefinesEdges) {
check(project.kotlinPluginLifecycle.stage <= KotlinPluginLifecycle.Stage.FinaliseRefinesEdges) {
"Illegal 'dependsOn' call in stage '${project.kotlinPluginLifecycle.stage}'"
}