From e4b760370f100d0c0fe2c2bd708c201285b6d1ec Mon Sep 17 00:00:00 2001 From: Anton Lakotka Date: Tue, 23 Jan 2024 09:26:30 +0100 Subject: [PATCH] [Gradle] Put stdlib in K/Native classpath in first position And stop doing so on Compiler Side. ^KT-61430 Verification Pending ^KT-61559 Verification Pending --- .../kotlin/fir/session/FirNativeSessionFactory.kt | 8 ++------ .../SetupKotlinNativePlatformDependenciesAndStdlib.kt | 11 ++++++++--- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirNativeSessionFactory.kt b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirNativeSessionFactory.kt index 4540921ed46..5185404104c 100644 --- a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirNativeSessionFactory.kt +++ b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirNativeSessionFactory.kt @@ -54,13 +54,9 @@ object FirNativeSessionFactory : FirAbstractSessionFactory() { bindSession(session) } val resolvedKotlinLibraries = resolvedLibraries.map { it.library } - // KT-61645: stdlib-native must appear before stdlib-common metadata in the dependency list - // TODO: Consider not reordering libraries after KT-61430 is fixed, and Gradle plugin determines full order of dependencies. - val (stdlib, otherDeps) = resolvedKotlinLibraries.partition { it.isNativeStdlib } - val kotlinLibraries = stdlib + otherDeps listOfNotNull( - KlibBasedSymbolProvider(session, moduleDataProvider, kotlinScopeProvider, kotlinLibraries), - NativeForwardDeclarationsSymbolProvider(session, forwardDeclarationsModuleData, kotlinScopeProvider, kotlinLibraries), + KlibBasedSymbolProvider(session, moduleDataProvider, kotlinScopeProvider, resolvedKotlinLibraries), + NativeForwardDeclarationsSymbolProvider(session, forwardDeclarationsModuleData, kotlinScopeProvider, resolvedKotlinLibraries), FirBuiltinSyntheticFunctionInterfaceProvider(session, builtinsModuleData, kotlinScopeProvider), syntheticFunctionInterfaceProvider, ) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/SetupKotlinNativePlatformDependenciesAndStdlib.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/SetupKotlinNativePlatformDependenciesAndStdlib.kt index 4812a918b00..919b805f1e5 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/SetupKotlinNativePlatformDependenciesAndStdlib.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/SetupKotlinNativePlatformDependenciesAndStdlib.kt @@ -30,10 +30,15 @@ internal val SetupKotlinNativePlatformDependenciesAndStdlib = // Commonizer target must not be null for AbstractKotlinNativeCompilation, but we are graceful here and just return val commonizerTarget = compilation.commonizerTarget.await() ?: return@KotlinCompilationSideEffectCoroutine val nativeDistributionDependencies = project.getNativeDistributionDependencies(commonizerTarget) - compilation.compileDependencyFiles += nativeDistributionDependencies - val stdlib = project.files(project.konanDistribution.stdlib) - compilation.compileDependencyFiles += stdlib + + val updatedCompileDependencyFiles = project.files().from( + stdlib, + nativeDistributionDependencies, + compilation.compileDependencyFiles + ) + + compilation.compileDependencyFiles = updatedCompileDependencyFiles } internal val ExcludeDefaultPlatformDependenciesFromKotlinNativeCompileTasks = KotlinProjectSetupAction {