Blaž Šolar
2 years ago
committed by
GitHub
8 changed files with 111 additions and 68 deletions
@ -0,0 +1,42 @@
|
||||
/* |
||||
* Copyright 2020-2022 JetBrains s.r.o. and respective authors and developers. |
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. |
||||
*/ |
||||
|
||||
package org.jetbrains.compose.experimental.uikit.internal |
||||
|
||||
import org.gradle.api.Project |
||||
import org.jetbrains.compose.experimental.uikit.tasks.ExperimentalPackComposeApplicationForXCodeTask |
||||
import org.jetbrains.compose.internal.fileToDir |
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension |
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget |
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.NativeBuildType |
||||
import java.io.File |
||||
|
||||
internal fun Project.configurePackComposeUiKitApplicationForXCodeTask( |
||||
mppExt: KotlinMultiplatformExtension, |
||||
id: String, |
||||
configName: String, |
||||
projectName: String, |
||||
targetBuildPath: File, |
||||
targetType: ExperimentalPackComposeApplicationForXCodeTask.UikitTarget, |
||||
) = tasks.register( |
||||
"packComposeUikitApplicationForXCode$id$configName", |
||||
ExperimentalPackComposeApplicationForXCodeTask::class.java |
||||
) { packTask -> |
||||
val buildType = project.provider { configName }.map { |
||||
if (it.equals("release", ignoreCase = true)) NativeBuildType.RELEASE |
||||
else NativeBuildType.DEBUG |
||||
}.orElse(NativeBuildType.DEBUG) |
||||
val target = mppExt.targets.getByName(targetType.targetName) as KotlinNativeTarget |
||||
val kotlinBinary = target.binaries.getExecutable(buildType.get()) |
||||
val targetBuildDir = project.provider { targetBuildPath }.fileToDir(project) |
||||
val executablePath = "${projectName}.app/${projectName}" |
||||
|
||||
packTask.targetType.set(targetType) |
||||
packTask.buildType.set(buildType) |
||||
packTask.dependsOn(kotlinBinary.linkTask) |
||||
packTask.kotlinBinary.set(kotlinBinary.outputFile) |
||||
packTask.destinationDir.set(targetBuildDir) |
||||
packTask.executablePath.set(executablePath) |
||||
} |
Loading…
Reference in new issue