diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/IOSModuleConfigurator.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/IOSModuleConfigurator.kt index f12632da6aa..aa8eaed78d9 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/IOSModuleConfigurator.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/IOSModuleConfigurator.kt @@ -8,7 +8,7 @@ package org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators import org.jetbrains.annotations.NonNls import org.jetbrains.kotlin.tools.projectWizard.KotlinNewProjectWizardBundle import org.jetbrains.kotlin.tools.projectWizard.core.* -import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase +import org.jetbrains.kotlin.tools.projectWizard.core.entity.properties.ModuleConfiguratorProperty import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.gradle.GradlePlugin import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModulesToIrConversionData import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.* @@ -16,7 +16,11 @@ import org.jetbrains.kotlin.tools.projectWizard.templates.FileTemplate import org.jetbrains.kotlin.tools.projectWizard.templates.FileTemplateDescriptor import java.nio.file.Path -object IOSSinglePlatformModuleConfigurator : SinglePlatformModuleConfigurator, ModuleConfiguratorSettings() { +object IOSSinglePlatformModuleConfigurator : SinglePlatformModuleConfigurator, + ModuleConfiguratorSettings(), + ModuleConfiguratorProperties, + ModuleConfiguratorWithProperties { + @NonNls override val id = "IOS Module" @@ -71,7 +75,7 @@ object IOSSinglePlatformModuleConfigurator : SinglePlatformModuleConfigurator, M private fun Reader.createTemplatesSettingValues(module: Module): Map { val dependentModule = inContextOfModuleConfigurator(module) { - dependentModule.reference.notRequiredSettingValue?.module + dependentModule.reference.propertyValue.module } return mapOf( @@ -93,13 +97,10 @@ object IOSSinglePlatformModuleConfigurator : SinglePlatformModuleConfigurator, M @NonNls private const val DEFAULT_APP_NAME = "appName" - val dependentModule by valueSetting( - "", - GenerationPhase.PROJECT_GENERATION, - alwaysFailingParser("Dependent module setting should not be parsed") - ) { - defaultValue = value(DependentModuleReference.EMPTY) - } + val dependentModule by property(DependentModuleReference.EMPTY) + + override fun getConfiguratorProperties(): List> = + listOf(dependentModule) data class DependentModuleReference(val module: Module?) { companion object { 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 7f1e930db2b..a54b7ec9003 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 @@ -50,7 +50,7 @@ sealed class ModuleDependencyType( }.asSingletonList() } - open fun SettingsWriter.runArbitraryTask( + open fun Writer.runArbitraryTask( from: Module, to: Module, toModulePath: Path, @@ -78,14 +78,15 @@ sealed class ModuleDependencyType( override fun createDependencyIrs(from: Module, to: Module, data: ModulesToIrConversionData): List = emptyList() - override fun SettingsWriter.runArbitraryTask( + override fun Writer.runArbitraryTask( from: Module, to: Module, toModulePath: Path, data: ModulesToIrConversionData ): TaskResult = inContextOfModuleConfigurator(from) { - IOSSinglePlatformModuleConfigurator.dependentModule.reference - .setValue(IOSSinglePlatformModuleConfigurator.DependentModuleReference(to)) + IOSSinglePlatformModuleConfigurator.dependentModule.reference.update { + IOSSinglePlatformModuleConfigurator.DependentModuleReference(to).asSuccess() + } val dummyFilePath = Defaults.SRC_DIR / "${to.iosTargetSafe()!!.name}Main" / to.configurator.kotlinDirectoryName / "dummyFile.kt" TemplatesPlugin.addFileTemplate.execute( FileTemplate(