[Gradle] Implement CreateFatFrameworksSetupAction
KT-61634
This commit is contained in:
committed by
Space Team
parent
c7b4057dab
commit
3be2eb9b31
-2
@@ -27,7 +27,6 @@ import org.jetbrains.kotlin.gradle.scripting.internal.ScriptingGradleSubplugin
|
||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinWasmTargetType
|
||||
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTargetPreset
|
||||
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinWasmTargetPreset
|
||||
import org.jetbrains.kotlin.gradle.targets.native.createFatFrameworks
|
||||
import org.jetbrains.kotlin.gradle.targets.native.internal.setupCInteropCommonizedCInteropApiElementsConfigurations
|
||||
import org.jetbrains.kotlin.gradle.targets.native.tasks.artifact.registerKotlinArtifactsExtension
|
||||
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompileTool
|
||||
@@ -77,7 +76,6 @@ class KotlinMultiplatformPlugin : Plugin<Project> {
|
||||
project.locateOrRegisterIdeResolveDependenciesTask()
|
||||
project.launch { project.setupCInteropCommonizedCInteropApiElementsConfigurations() }
|
||||
project.addBuildListenerForXcode()
|
||||
project.whenEvaluated { kotlinMultiplatformExtension.createFatFrameworks() }
|
||||
}
|
||||
|
||||
private fun exportProjectStructureMetadataForOtherBuilds(
|
||||
|
||||
+4
@@ -29,6 +29,7 @@ import org.jetbrains.kotlin.gradle.plugin.diagnostics.checkers.PreHmppDependenci
|
||||
import org.jetbrains.kotlin.gradle.plugin.diagnostics.checkers.UnusedSourceSetsChecker
|
||||
import org.jetbrains.kotlin.gradle.plugin.diagnostics.checkers.WasmSourceSetsNotFoundChecker
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.AddNpmDependencyExtensionProjectSetupAction
|
||||
import org.jetbrains.kotlin.gradle.targets.native.CreateFatFrameworksSetupAction
|
||||
import org.jetbrains.kotlin.gradle.tooling.RegisterBuildKotlinToolingMetadataTask
|
||||
|
||||
/**
|
||||
@@ -39,6 +40,9 @@ internal fun Project.registerKotlinPluginExtensions() {
|
||||
register(project, AddNpmDependencyExtensionProjectSetupAction)
|
||||
register(project, RegisterBuildKotlinToolingMetadataTask)
|
||||
register(project, KotlinToolingDiagnosticsSetupAction)
|
||||
if (isMultiplatform) {
|
||||
register(project, CreateFatFrameworksSetupAction)
|
||||
}
|
||||
}
|
||||
|
||||
KotlinGradleProjectChecker.extensionPoint.apply {
|
||||
|
||||
+7
-6
@@ -10,8 +10,8 @@ import org.gradle.api.artifacts.Configuration
|
||||
import org.gradle.api.provider.Provider
|
||||
import org.gradle.api.tasks.TaskProvider
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinNativeTargetConfigurator
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
||||
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
|
||||
import org.jetbrains.kotlin.gradle.plugin.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycle
|
||||
import org.jetbrains.kotlin.gradle.plugin.internal.artifactTypeAttribute
|
||||
import org.jetbrains.kotlin.gradle.plugin.launchInStage
|
||||
@@ -35,7 +35,7 @@ private data class FrameworkGroupDescription(
|
||||
val frameworkName: String,
|
||||
val targetFamilyName: String,
|
||||
val baseName: String,
|
||||
val buildType: NativeBuildType
|
||||
val buildType: NativeBuildType,
|
||||
)
|
||||
|
||||
private val Framework.frameworkGroupDescription
|
||||
@@ -58,8 +58,9 @@ internal fun Project.createFrameworkArtifact(binaryFramework: Framework, linkTas
|
||||
addFrameworkArtifact(frameworkConfiguration, linkTask.flatMap { it.outputFile })
|
||||
}
|
||||
|
||||
internal fun KotlinMultiplatformExtension.createFatFrameworks() {
|
||||
val frameworkGroups = targets
|
||||
internal val CreateFatFrameworksSetupAction = KotlinProjectSetupCoroutine {
|
||||
KotlinPluginLifecycle.Stage.FinaliseDsl.await()
|
||||
val frameworkGroups = multiplatformExtension.targets
|
||||
.filterIsInstance<KotlinNativeTarget>()
|
||||
.filter { FatFrameworkTask.isSupportedTarget(it) }
|
||||
.flatMap { it.binaries }
|
||||
@@ -78,7 +79,7 @@ private val FrameworkGroupDescription.fatFrameworkConfigurationName get() = lowe
|
||||
private fun Configuration.applyBinaryFrameworkGroupAttributes(
|
||||
project: Project,
|
||||
frameworkDescription: FrameworkGroupDescription,
|
||||
targets: List<KotlinNativeTarget>
|
||||
targets: List<KotlinNativeTarget>,
|
||||
) {
|
||||
with(attributes) {
|
||||
attribute(KotlinPlatformType.attribute, KotlinPlatformType.native)
|
||||
|
||||
Reference in New Issue
Block a user