diff --git a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/multiplatformMobileApplication/expected/shared/build.gradle b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/multiplatformMobileApplication/expected/shared/build.gradle index 9d5fd4d7132..8d00b079745 100644 --- a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/multiplatformMobileApplication/expected/shared/build.gradle +++ b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/multiplatformMobileApplication/expected/shared/build.gradle @@ -19,7 +19,7 @@ repositories { } kotlin { android() - iosX64('ios') { + ios { binaries { framework { baseName = 'shared' @@ -72,7 +72,9 @@ android { task(packForXcode, type: Sync) { group = 'build' def mode = System.getenv('CONFIGURATION') ?: 'DEBUG' - def framework = kotlin.targets.ios.binaries.getFramework(mode) + def sdkName = System.getenv('SDK_NAME') ?: 'iphonesimulator' + def targetName = 'ios' + (sdkName.startsWith('iphoneos') ? 'Arm64' : 'X64') + def framework = kotlin.targets[targetName].binaries.getFramework(mode) inputs.property('mode', mode) dependsOn(framework.linkTask) def targetDir = new File(buildDir, 'xcode-frameworks') diff --git a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/multiplatformMobileApplication/expected/shared/build.gradle.kts b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/multiplatformMobileApplication/expected/shared/build.gradle.kts index 5a2fbb21027..847998af3d1 100644 --- a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/multiplatformMobileApplication/expected/shared/build.gradle.kts +++ b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/multiplatformMobileApplication/expected/shared/build.gradle.kts @@ -19,7 +19,7 @@ repositories { } kotlin { android() - iosX64("ios") { + ios { binaries { framework { baseName = "shared" @@ -66,7 +66,9 @@ android { val packForXcode by tasks.creating(Sync::class) { group = "build" val mode = System.getenv("CONFIGURATION") ?: "DEBUG" - val framework = kotlin.targets.getByName("ios").binaries.getFramework(mode) + val sdkName = System.getenv("SDK_NAME") ?: "iphonesimulator" + val targetName = "ios" + if (sdkName.startsWith("iphoneos")) "Arm64" else "X64" + val framework = kotlin.targets.getByName(targetName).binaries.getFramework(mode) inputs.property("mode", mode) dependsOn(framework.linkTask) val targetDir = File(buildDir, "xcode-frameworks") diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/ModuleType.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/ModuleType.kt index c1f332ced74..b9485b50393 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/ModuleType.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/ModuleType.kt @@ -28,6 +28,7 @@ enum class ModuleSubType(val moduleType: ModuleType) { android(ModuleType.android), androidNativeArm32(ModuleType.native), androidNativeArm64(ModuleType.native), iosArm32(ModuleType.native), iosArm64(ModuleType.native), iosX64(ModuleType.native), + ios(ModuleType.native)/*TODO TEMPORARY TILL HMPP WIZARD PART IS MERGED*/, linuxArm32Hfp(ModuleType.native), linuxMips32(ModuleType.native), linuxMipsel32(ModuleType.native), linuxX64(ModuleType.native), macosX64(ModuleType.native), @@ -36,7 +37,7 @@ enum class ModuleSubType(val moduleType: ModuleType) { } val ModuleSubType.isIOS: Boolean - get() = this in EnumSet.of(ModuleSubType.iosX64, ModuleSubType.iosArm32, ModuleSubType.iosArm64) + get() = this in EnumSet.of(ModuleSubType.iosX64, ModuleSubType.iosArm32, ModuleSubType.iosArm64, ModuleSubType.ios) val ModuleSubType.isNativeDesktop: Boolean get() = this in EnumSet.of( diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/projectTemplates/ProjectTemplate.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/projectTemplates/ProjectTemplate.kt index f1354f91b1c..baa0b13927d 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/projectTemplates/ProjectTemplate.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/projectTemplates/ProjectTemplate.kt @@ -323,7 +323,7 @@ object MultiplatformMobileApplicationProjectTemplate : ProjectTemplate() { }, Module( "ios", - RealNativeTargetConfigurator.configuratorsByModuleType.getValue(ModuleSubType.iosX64), + RealNativeTargetConfigurator.configuratorsByModuleType.getValue(ModuleSubType.ios), null, sourcesets = createDefaultSourcesets(), subModules = emptyList() diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/settings/buildsystem/ModuleDependency.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/settings/buildsystem/ModuleDependency.kt index 160a8974e94..c5970ba1888 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/settings/buildsystem/ModuleDependency.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/settings/buildsystem/ModuleDependency.kt @@ -147,11 +147,23 @@ sealed class ModuleDependencyType( "?:", const("DEBUG") ) - "framework" createValue raw { - +"kotlin.targets." + "sdkName" createValue GradleBinaryExpressionIR( + raw { +"System.getenv("; +"SDK_NAME".quotified; +")" }, + "?:", + const("iphonesimulator") + ) + "targetName" createValue raw { + +iosTargetName.quotified when (dsl) { - GradlePrinter.GradleDsl.KOTLIN -> +"""getByName("$iosTargetName")""" - GradlePrinter.GradleDsl.GROOVY -> +iosTargetName + GradlePrinter.GradleDsl.KOTLIN -> +""" + if (sdkName.startsWith("iphoneos")) "Arm64" else "X64"""" + GradlePrinter.GradleDsl.GROOVY -> +""" + (sdkName.startsWith('iphoneos') ? 'Arm64' : 'X64')""" + } + } + "framework" createValue raw { + +"kotlin.targets" + when (dsl) { + GradlePrinter.GradleDsl.KOTLIN -> +""".getByName(targetName)""" + GradlePrinter.GradleDsl.GROOVY -> +"""[targetName]""" } +".binaries.getFramework(mode)" };