From 95176670813eaab62556f46ea5b4aa2a01ca8b95 Mon Sep 17 00:00:00 2001 From: Sebastian Sellmair Date: Mon, 13 Mar 2023 13:13:32 +0100 Subject: [PATCH] [Gradle] NativeExternalDependenciesIT: Build dependencies file at execution time ^KT-34662 Verification Pending --- .../native/NativeExternalDependenciesIT.kt | 5 ++--- .../build.gradle.kts | 18 +++++++++++------- .../plugin/sources/AbstractKotlinSourceSet.kt | 2 +- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/NativeExternalDependenciesIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/NativeExternalDependenciesIT.kt index 0e136225441..82240d47467 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/NativeExternalDependenciesIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/NativeExternalDependenciesIT.kt @@ -99,11 +99,10 @@ class NativeExternalDependenciesIT : BaseGradleIT() { ) build( - "assemble", - options = defaultBuildOptions().copy(dryRun = true) + "buildExternalDependenciesFile" ) { assertSuccessful() - + assertTasksExecuted(":buildExternalDependenciesFile") val kotlinNativeTargetName = findKotlinNativeTargetName(output) assertNotNull(kotlinNativeTargetName) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-external-dependencies/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-external-dependencies/build.gradle.kts index 82e3f8719b3..8a16078ae01 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-external-dependencies/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-external-dependencies/build.gradle.kts @@ -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=") - println("for_test_external_dependencies_file=$externalDependenciesFile") + println("for_test_kotlin_native_target=") + println("for_test_external_dependencies_file=$externalDependenciesFile") + } } + +tasks.getByName("assemble").dependsOn(buildExternalDependenciesFile) \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/AbstractKotlinSourceSet.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/AbstractKotlinSourceSet.kt index 538c9200b1f..078a71f662f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/AbstractKotlinSourceSet.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/AbstractKotlinSourceSet.kt @@ -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}'" }