[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
|
@get:OutputDirectory
|
||||||
abstract val outputDirectory: File
|
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 abstract fun findInteropsGroup(dependent: CInteropCommonizerDependent): CInteropCommonizerGroup?
|
||||||
|
}
|
||||||
internal fun commonizedOutputLibraries(dependent: CInteropCommonizerDependent): FileCollection {
|
|
||||||
val fileProvider = project.filesProvider {
|
internal fun AbstractCInteropCommonizerTask.outputDirectory(group: CInteropCommonizerGroup): File {
|
||||||
val group = findInteropsGroup(dependent) ?: return@filesProvider emptySet<File>()
|
val interopsDirectoryName = group.interops.map { it.interopName }.toSet().joinToString(";")
|
||||||
CommonizerOutputFileLayout
|
val groupDisambiguation = group.targets.joinToString { it.identityString } +
|
||||||
.resolveCommonizedDirectory(outputDirectory(group), dependent.target)
|
group.interops.joinToString { it.uniqueName }
|
||||||
.listFiles().orEmpty().toSet()
|
|
||||||
}
|
return outputDirectory
|
||||||
|
.resolve(ensureMaxFileNameLength(interopsDirectoryName))
|
||||||
return fileProvider.builtBy(this)
|
.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