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