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( protected fun createKotlinNativeCompilationTask(
variant: KotlinGradleVariant, fragment: KotlinGradleFragment,
compilationData: KotlinNativeCompilationData<*> compilationData: KotlinNativeCompilationData<*>,
configure: KotlinNativeCompile.() -> Unit
): TaskProvider<KotlinNativeCompile> { ): TaskProvider<KotlinNativeCompile> {
val compileTask = KotlinNativeTargetConfigurator.createKlibCompilationTask(compilationData) val compileTask = KotlinNativeTargetConfigurator.createKlibCompilationTask(compilationData)
val allSources = getSourcesForFragmentCompilation(variant) val allSources = getSourcesForFragmentCompilation(fragment)
val commonSources = getCommonSourcesForFragmentCompilation(variant) val commonSources = getCommonSourcesForFragmentCompilation(fragment)
compileTask.configure { compileTask.configure {
it.source(allSources) it.source(allSources)
it.commonSources.from(commonSources) it.commonSources.from(commonSources)
it.kotlinPluginData = project.compilerPluginProviderForPlatformCompilation(variant, compilationData) it.configure()
} }
return compileTask 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( fun createKotlinNativeMetadataCompilationTask(
fragment: KotlinGradleFragment, fragment: KotlinGradleFragment,
compilationData: KotlinNativeFragmentMetadataCompilationData compilationData: KotlinNativeFragmentMetadataCompilationData
): TaskProvider<KotlinNativeCompile> { ): TaskProvider<KotlinNativeCompile> = createKotlinNativeCompilationTask(fragment, compilationData) {
val compileTask = KotlinNativeTargetConfigurator.createKlibCompilationTask(compilationData) kotlinPluginData = project.compilerPluginProviderForNativeMetadata(fragment, 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
} }
override fun getSourcesForFragmentCompilation(fragment: KotlinGradleFragment): MultipleSourceRootsProvider { override fun getSourcesForFragmentCompilation(fragment: KotlinGradleFragment): MultipleSourceRootsProvider {