[Gradle] Minor: Refactor AbstractCInteropCommonizerTask to extensions

^KT-46198
This commit is contained in:
sebastian.sellmair
2021-10-06 13:13:39 +02:00
committed by Space
parent 21a1582a83
commit 33e391583d
@@ -19,26 +19,30 @@ internal abstract class AbstractCInteropCommonizerTask : DefaultTask() {
@get:OutputDirectory
abstract val outputDirectory: File
internal fun outputDirectory(group: CInteropCommonizerGroup): File {
val interopsDirectoryName = group.interops.map { it.interopName }.toSet().joinToString(";")
val groupDisambiguation = group.targets.joinToString { it.identityString } +
group.interops.joinToString { it.uniqueName }
return outputDirectory
.resolve(ensureMaxFileNameLength(interopsDirectoryName))
.resolve(base64Hash(groupDisambiguation))
}
internal abstract fun findInteropsGroup(dependent: CInteropCommonizerDependent): CInteropCommonizerGroup?
internal fun commonizedOutputLibraries(dependent: CInteropCommonizerDependent): FileCollection {
val fileProvider = project.filesProvider {
val group = findInteropsGroup(dependent) ?: return@filesProvider emptySet<File>()
CommonizerOutputFileLayout
.resolveCommonizedDirectory(outputDirectory(group), dependent.target)
.listFiles().orEmpty().toSet()
}
return fileProvider.builtBy(this)
}
}
internal fun AbstractCInteropCommonizerTask.outputDirectory(group: CInteropCommonizerGroup): File {
val interopsDirectoryName = group.interops.map { it.interopName }.toSet().joinToString(";")
val groupDisambiguation = group.targets.joinToString { it.identityString } +
group.interops.joinToString { it.uniqueName }
return outputDirectory
.resolve(ensureMaxFileNameLength(interopsDirectoryName))
.resolve(base64Hash(groupDisambiguation))
}
internal fun AbstractCInteropCommonizerTask.commonizedOutputLibraries(dependent: CInteropCommonizerDependent): FileCollection {
val fileProvider = project.filesProvider {
(commonizedOutputDirectory(dependent) ?: return@filesProvider emptySet<File>())
.listFiles().orEmpty().toSet()
}
return fileProvider.builtBy(this)
}
internal fun AbstractCInteropCommonizerTask.commonizedOutputDirectory(dependent: CInteropCommonizerDependent): File? {
val group = findInteropsGroup(dependent) ?: return null
return CommonizerOutputFileLayout
.resolveCommonizedDirectory(outputDirectory(group), dependent.target)
}