[Gradle] Minor: Refactor AbstractCInteropCommonizerTask to extensions
^KT-46198
This commit is contained in:
committed by
Space
parent
21a1582a83
commit
33e391583d
+25
-21
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user