[Gradle] Include native platform dependencies explicitly

They are now also exposed via KotlinCompilation.compileDependencyFiles
Which is useful for tools like dokka that relies on exhaustive
list of dependencies for given source set/compilation.

^KT-61559 Verification Pending
This commit is contained in:
Anton Lakotka
2023-11-26 18:01:26 +01:00
committed by Space Team
parent 43acc6516b
commit 639e048438
8 changed files with 25 additions and 16 deletions
@@ -10,6 +10,7 @@ import org.gradle.api.logging.configuration.WarningMode
import org.gradle.testkit.runner.BuildResult
import org.gradle.util.GradleVersion
import java.util.*
import kotlin.test.assertEquals
/**
* Asserts Gradle output contains [expectedSubString] string.
@@ -422,12 +423,15 @@ fun BuildResult.assertOutputContainsNativeFrameworkVariant(variantName: String,
* Asserts that the command line arguments do not contain any duplicates.
*/
fun CommandLineArguments.assertNoDuplicates() {
assert(args.size == args.toSet().size) {
buildResult.printBuildOutput()
"Link task has duplicated arguments: ${args.joinToString()}"
}
}
// -library can be duplicated as it represent compile dependencies
val argsWithoutLibraries = args.filter { it != "-library" }
assertEquals(
argsWithoutLibraries.joinToString("\n"),
argsWithoutLibraries.toSet().joinToString("\n"),
"Link task has duplicated arguments"
)
}
private fun BuildResult.extractNativeCustomEnvironment(taskPath: String, toolName: NativeToolKind): Map<String, String> =
extractNativeToolSettings(getOutputForTask(taskPath, LogLevel.INFO), toolName, NativeToolSettingsKind.CUSTOM_ENV_VARIABLES).map {