Skip to content

Commit 4cddab4

Browse files
committed
When Kotlin Source Set has no metadata compilations, include classpath of all compilations
Workaround wasmJs/wasmWasi missing stdlib. KT-80551
1 parent 12c2bb1 commit 4cddab4

File tree

1 file changed

+23
-3
lines changed

1 file changed

+23
-3
lines changed

dokka-runners/dokka-gradle-plugin/src/main/kotlin/adapters/KotlinAdapter.kt

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -186,8 +186,10 @@ abstract class KotlinAdapter @Inject constructor(
186186

187187
private fun determineClasspath(
188188
details: KotlinSourceSetDetails
189-
): Provider<FileCollection> {
190-
return details.primaryCompilations.map { compilations: List<KotlinCompilationDetails> ->
189+
): FileCollection {
190+
val aggregatedClasspath = objects.fileCollection()
191+
192+
val directClasspath = details.primaryCompilations.map { compilations: List<KotlinCompilationDetails> ->
191193
val classpath = objects.fileCollection()
192194

193195
if (compilations.isNotEmpty()) {
@@ -200,6 +202,24 @@ abstract class KotlinAdapter @Inject constructor(
200202
.from(details.sourceDirectoriesOfDependents)
201203
}
202204
}
205+
aggregatedClasspath.from(directClasspath)
206+
207+
val combinedClasspath = details.allCompilations.map { compilations: List<KotlinCompilationDetails> ->
208+
val classpath = objects.fileCollection()
209+
210+
if (compilations.none { it.isMetadata }) {
211+
logger.info("[$dkaName] No metadata compilation found for ${details.name}, also including all compilations")
212+
classpath.from(compilations.map { it.compilationClasspath })
213+
compilations.fold(classpath) { acc, compilation ->
214+
acc.from(compilation.compilationClasspath)
215+
}
216+
}
217+
218+
classpath
219+
}
220+
aggregatedClasspath.from(combinedClasspath)
221+
222+
return aggregatedClasspath
203223
}
204224

205225
@InternalDokkaGradlePluginApi
@@ -335,7 +355,7 @@ private class KotlinCompilationDetailsBuilder(
335355
dependentSourceSetNames = dependentSourceSetNames.toSet(),
336356
compilationClasspath = compilationClasspath,
337357
defaultSourceSetName = compilation.defaultSourceSet.name,
338-
isMetadata = compilation is KotlinMetadataTarget,
358+
isMetadata = compilation.target is KotlinMetadataTarget,
339359
)
340360
}
341361

0 commit comments

Comments
 (0)