Reuse code in MetadataCompilationTasksConfigurator for native task

This commit is contained in:
Anton Lakotka
2021-04-30 11:32:02 +02:00
committed by Space
parent 28fe070a2f
commit c01be75f47
2 changed files with 17 additions and 21 deletions
@@ -43,21 +43,29 @@ open class KotlinCompilationTaskConfigurator(
}
}
fun createKotlinNativeCompilationTask(
variant: KotlinGradleVariant,
compilationData: KotlinNativeCompilationData<*>
protected fun createKotlinNativeCompilationTask(
fragment: KotlinGradleFragment,
compilationData: KotlinNativeCompilationData<*>,
configure: KotlinNativeCompile.() -> Unit
): TaskProvider<KotlinNativeCompile> {
val compileTask = KotlinNativeTargetConfigurator.createKlibCompilationTask(compilationData)
val allSources = getSourcesForFragmentCompilation(variant)
val commonSources = getCommonSourcesForFragmentCompilation(variant)
val allSources = getSourcesForFragmentCompilation(fragment)
val commonSources = getCommonSourcesForFragmentCompilation(fragment)
compileTask.configure {
it.source(allSources)
it.commonSources.from(commonSources)
it.kotlinPluginData = project.compilerPluginProviderForPlatformCompilation(variant, compilationData)
it.configure()
}
return compileTask
}
}
fun createKotlinNativeCompilationTask(
variant: KotlinGradleVariant,
compilationData: KotlinNativeCompilationData<*>
): TaskProvider<KotlinNativeCompile> = createKotlinNativeCompilationTask(variant, compilationData) {
kotlinPluginData = project.compilerPluginProviderForPlatformCompilation(variant, compilationData)
}
}
@@ -228,20 +228,8 @@ private class MetadataCompilationTasksConfigurator(project: Project) : KotlinCom
fun createKotlinNativeMetadataCompilationTask(
fragment: KotlinGradleFragment,
compilationData: KotlinNativeFragmentMetadataCompilationData
): TaskProvider<KotlinNativeCompile> {
val compileTask = KotlinNativeTargetConfigurator.createKlibCompilationTask(compilationData)
val allSources = getSourcesForFragmentCompilation(fragment)
val commonSources = getCommonSourcesForFragmentCompilation(fragment)
compileTask.configure {
it.source(allSources)
it.commonSources.from(commonSources)
it.kotlinPluginData = project.compilerPluginProviderForNativeMetadata(fragment, compilationData)
}
return compileTask
): TaskProvider<KotlinNativeCompile> = createKotlinNativeCompilationTask(fragment, compilationData) {
kotlinPluginData = project.compilerPluginProviderForNativeMetadata(fragment, compilationData)
}
override fun getSourcesForFragmentCompilation(fragment: KotlinGradleFragment): MultipleSourceRootsProvider {