@@ -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