You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.5 KiB
64 lines
2.5 KiB
/* |
|
* 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.gradle.api.tasks.TaskProvider |
|
import org.jetbrains.compose.experimental.uikit.tasks.AbstractComposeIosTask |
|
|
|
internal fun Project.configureTaskToGenerateXcodeProject( |
|
id: String, |
|
projectName: String, |
|
bundleIdPrefix: String, |
|
getTeamId: () -> String? = { null }, |
|
taskInstallXcodeGen: TaskProvider<*>, |
|
): TaskProvider<AbstractComposeIosTask> = tasks.composeIosTask<AbstractComposeIosTask>("iosGenerateXcodeProject$id") { |
|
dependsOn(taskInstallXcodeGen) |
|
doLast { |
|
val commonMainResources = file("src/commonMain/resources").absolutePath |
|
val uikitMainResources = file("src/uikitMain/resources").absolutePath |
|
val iosMainResources = file("src/iosMain/resources").absolutePath |
|
val buildIosDir = getBuildIosDir(id) |
|
buildIosDir.mkdirs() |
|
buildIosDir.resolve("project.yml").writeText( |
|
""" |
|
name: $projectName |
|
options: |
|
bundleIdPrefix: $bundleIdPrefix |
|
settings: |
|
${if (getTeamId() != null) "DEVELOPMENT_TEAM: \"${getTeamId()}\"" else ""} |
|
CODE_SIGN_IDENTITY: "iPhone Developer" |
|
CODE_SIGN_STYLE: Automatic |
|
MARKETING_VERSION: "1.0" |
|
CURRENT_PROJECT_VERSION: "4" |
|
SDKROOT: iphoneos |
|
targets: |
|
$projectName: |
|
type: application |
|
platform: iOS |
|
deploymentTarget: "12.0" |
|
info: |
|
path: plists/Ios/Info.plist |
|
settings: |
|
LIBRARY_SEARCH_PATHS: "$(inherited)" |
|
ENABLE_BITCODE: "YES" |
|
ONLY_ACTIVE_ARCH: "NO" |
|
VALID_ARCHS: "arm64" |
|
sources: |
|
- path: $commonMainResources |
|
optional: true |
|
buildPhase: resources |
|
- path: $uikitMainResources |
|
optional: true |
|
buildPhase: resources |
|
- path: $iosMainResources |
|
optional: true |
|
buildPhase: resources |
|
""".trimIndent() |
|
) |
|
runExternalTool(xcodeGenExecutable, emptyList(), workingDir = buildIosDir) |
|
} |
|
}
|
|
|