[JS] Implementation dependencies for JS klibs
^KT-56158 fixed
This commit is contained in:
committed by
Space Team
parent
ca0b3ffa78
commit
1150ec6882
+16
@@ -425,6 +425,22 @@ class Kotlin2JsIrGradlePluginIT : AbstractKotlin2JsGradlePluginIT(true) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@DisplayName("JS IR implementation dependency")
|
||||
@GradleTest
|
||||
fun testJsIrImplementationDependency(gradleVersion: GradleVersion) {
|
||||
project("kotlin-js-browser-project", gradleVersion) {
|
||||
buildGradleKts.modify(::transformBuildScriptWithPluginsDsl)
|
||||
|
||||
build("assemble")
|
||||
|
||||
projectPath.resolve("app/src/main/kotlin/App.kt").modify {
|
||||
it.replace("sheldon()", "best()")
|
||||
}
|
||||
|
||||
buildAndFail("assemble")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@JsGradlePluginTests
|
||||
|
||||
+2
-1
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider
|
||||
import org.jetbrains.kotlin.gradle.tasks.configuration.Kotlin2JsCompileConfig
|
||||
import org.jetbrains.kotlin.gradle.tasks.configuration.KotlinJsIrLinkConfig
|
||||
import org.jetbrains.kotlin.gradle.utils.filesProvider
|
||||
|
||||
internal class KotlinJsIrSourceSetProcessor(
|
||||
tasksProvider: KotlinTasksProvider,
|
||||
@@ -46,7 +47,7 @@ internal class KotlinJsIrSourceSetProcessor(
|
||||
val configAction = KotlinJsIrLinkConfig(binary)
|
||||
configAction.configureTask {
|
||||
it.description = taskDescription
|
||||
it.libraries.from({ compilationInfo.compileDependencyFiles })
|
||||
it.libraries.from(compilation.runtimeDependencyFiles)
|
||||
}
|
||||
configAction.configureTask { task ->
|
||||
task.modeProperty.set(binary.mode)
|
||||
|
||||
+3
-1
@@ -66,6 +66,8 @@ abstract class AbstractKotlinTargetConfigurator<KotlinTargetType : KotlinTarget>
|
||||
internal val createTestCompilation: Boolean
|
||||
) : KotlinTargetConfigurator<KotlinTargetType> {
|
||||
|
||||
protected open val runtimeIncludesCompilationOutputs = true
|
||||
|
||||
protected open fun setupCompilationDependencyFiles(compilation: KotlinCompilation<KotlinCommonOptions>) {
|
||||
val project = compilation.target.project
|
||||
|
||||
@@ -87,7 +89,7 @@ abstract class AbstractKotlinTargetConfigurator<KotlinTargetType : KotlinTarget>
|
||||
target.compilations.create(KotlinCompilation.TEST_COMPILATION_NAME).apply {
|
||||
associateWith(main)
|
||||
|
||||
if (this is KotlinCompilationToRunnableFiles) {
|
||||
if (runtimeIncludesCompilationOutputs && this is KotlinCompilationToRunnableFiles) {
|
||||
// TODO: fix inconsistency? KT-27272
|
||||
runtimeDependencyFiles += project.files(output.allOutputs)
|
||||
}
|
||||
|
||||
+2
-1
@@ -23,6 +23,8 @@ open class KotlinJsIrTargetConfigurator() :
|
||||
KotlinOnlyTargetConfigurator<KotlinJsIrCompilation, KotlinJsIrTarget>(true),
|
||||
KotlinTargetWithTestsConfigurator<KotlinJsReportAggregatingTestRun, KotlinJsIrTarget> {
|
||||
|
||||
override val runtimeIncludesCompilationOutputs: Boolean = false
|
||||
|
||||
override val testRunClass: Class<KotlinJsReportAggregatingTestRun> get() = KotlinJsReportAggregatingTestRun::class.java
|
||||
|
||||
override val archiveType: String
|
||||
@@ -104,7 +106,6 @@ open class KotlinJsIrTargetConfigurator() :
|
||||
|
||||
override fun defineConfigurationsForTarget(target: KotlinJsIrTarget) {
|
||||
super.defineConfigurationsForTarget(target)
|
||||
implementationToApiElements(target)
|
||||
|
||||
if (target.isMpp!!) return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user