From c01be75f47dd7ab8c161ce4e3017e03fe89bed31 Mon Sep 17 00:00:00 2001 From: Anton Lakotka Date: Fri, 30 Apr 2021 11:32:02 +0200 Subject: [PATCH] Reuse code in MetadataCompilationTasksConfigurator for native task --- .../pm20/KotlinCompilationTaskConfigurator.kt | 22 +++++++++++++------ .../mpp/pm20/fragmentsMetadataCompilation.kt | 16 ++------------ 2 files changed, 17 insertions(+), 21 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCompilationTaskConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCompilationTaskConfigurator.kt index 315f416f1b5..eead3c4fe00 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCompilationTaskConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCompilationTaskConfigurator.kt @@ -43,21 +43,29 @@ open class KotlinCompilationTaskConfigurator( } } - fun createKotlinNativeCompilationTask( - variant: KotlinGradleVariant, - compilationData: KotlinNativeCompilationData<*> + protected fun createKotlinNativeCompilationTask( + fragment: KotlinGradleFragment, + compilationData: KotlinNativeCompilationData<*>, + configure: KotlinNativeCompile.() -> Unit ): TaskProvider { 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 } -} \ No newline at end of file + + fun createKotlinNativeCompilationTask( + variant: KotlinGradleVariant, + compilationData: KotlinNativeCompilationData<*> + ): TaskProvider = createKotlinNativeCompilationTask(variant, compilationData) { + kotlinPluginData = project.compilerPluginProviderForPlatformCompilation(variant, compilationData) + } + } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/fragmentsMetadataCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/fragmentsMetadataCompilation.kt index b881f8980de..1d39804369c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/fragmentsMetadataCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/fragmentsMetadataCompilation.kt @@ -228,20 +228,8 @@ private class MetadataCompilationTasksConfigurator(project: Project) : KotlinCom fun createKotlinNativeMetadataCompilationTask( fragment: KotlinGradleFragment, compilationData: KotlinNativeFragmentMetadataCompilationData - ): TaskProvider { - 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 = createKotlinNativeCompilationTask(fragment, compilationData) { + kotlinPluginData = project.compilerPluginProviderForNativeMetadata(fragment, compilationData) } override fun getSourcesForFragmentCompilation(fragment: KotlinGradleFragment): MultipleSourceRootsProvider {