Skip to content

Commit 5ae6851

Browse files
timofey-soloninSpace Team
authored and
Space Team
committed
Fix jvm withJava with multiplatform resources
by assigning outputDirectory on task's creation ^KT-67636
1 parent 5e69dc7 commit 5ae6851

File tree

2 files changed

+22
-24
lines changed

2 files changed

+22
-24
lines changed

libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/resources/registerAssembleHierarchicalResourcesTask.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,15 @@ internal fun KotlinCompilation<*>.registerAssembleHierarchicalResourcesTaskProvi
3636
}
3737

3838
return project.registerTask<AssembleHierarchicalResourcesTask>(taskName) { assembleResources ->
39+
val outputDirectory = project.layout.buildDirectory.dir(
40+
"${KotlinTargetResourcesPublicationImpl.MULTIPLATFORM_RESOURCES_DIRECTORY}/assemble-hierarchically/${targetNamePrefix}"
41+
)
42+
assembleResources.outputDirectory.set(outputDirectory)
3943
project.launchInStage(KotlinPluginLifecycle.Stage.AfterFinaliseRefinesEdges) {
4044
val resourceDirectoriesByLevel = splitResourceDirectoriesBySourceSetLevel(
4145
resources = resources,
4246
rootSourceSets = kotlinSourceSets.sortedBy { it.name },
4347
)
44-
val outputDirectory = project.layout.buildDirectory.dir(
45-
"${KotlinTargetResourcesPublicationImpl.MULTIPLATFORM_RESOURCES_DIRECTORY}/assemble-hierarchically/${targetNamePrefix}"
46-
)
4748

4849
resourceDirectoriesByLevel.forEach { level ->
4950
assembleResources.resourceDirectoriesByLevel.add(
@@ -58,7 +59,6 @@ internal fun KotlinCompilation<*>.registerAssembleHierarchicalResourcesTaskProvi
5859
)
5960
}
6061
assembleResources.relativeResourcePlacement.set(resources.relativeResourcePlacement)
61-
assembleResources.outputDirectory.set(outputDirectory)
6262
}
6363
}
6464
}

libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/regressionTests/KT67636JvmWithJavaSetSrcDirsTest.kt

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -19,27 +19,25 @@ class KT67636JvmWithJavaSetSrcDirsTest {
1919

2020
@Test
2121
fun `resources publication - for jvm withJava target - doesn't fail project evaluation`() {
22-
assertFailsWith(MissingValueException::class) {
23-
buildProjectWithMPP {
24-
kotlin {
25-
assertNotNull(resourcesPublicationExtension).publishResourcesAsKotlinComponent(
26-
target = jvm(),
27-
resourcePathForSourceSet = { _ ->
28-
KotlinTargetResourcesPublication.ResourceRoot(
29-
layout.buildDirectory.dir("foo").map { it.asFile },
30-
emptyList(),
31-
emptyList(),
32-
)
33-
},
34-
relativeResourcePlacement = layout.buildDirectory.dir("bar").map { it.asFile },
35-
)
36-
37-
jvm {
38-
withJava()
39-
}
22+
buildProjectWithMPP {
23+
kotlin {
24+
assertNotNull(resourcesPublicationExtension).publishResourcesAsKotlinComponent(
25+
target = jvm(),
26+
resourcePathForSourceSet = { _ ->
27+
KotlinTargetResourcesPublication.ResourceRoot(
28+
layout.buildDirectory.dir("foo").map { it.asFile },
29+
emptyList(),
30+
emptyList(),
31+
)
32+
},
33+
relativeResourcePlacement = layout.buildDirectory.dir("bar").map { it.asFile },
34+
)
35+
36+
jvm {
37+
withJava()
4038
}
41-
}.evaluate()
42-
}
39+
}
40+
}.evaluate()
4341
}
4442

4543
// FIXME: withJava forces providers in resources to be eagerly evaluated. See KT-67636

0 commit comments

Comments
 (0)