Wizard: use property for storing module dependency
This commit is contained in:
committed by
Kirill Shmakov
parent
dbc43b66bf
commit
7d1036ee7e
+11
-10
@@ -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<String, Any?> {
|
||||
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<DependentModuleReference>(
|
||||
"",
|
||||
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<ModuleConfiguratorProperty<*>> =
|
||||
listOf(dependentModule)
|
||||
|
||||
data class DependentModuleReference(val module: Module?) {
|
||||
companion object {
|
||||
|
||||
+5
-4
@@ -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<BuildSystemIR> =
|
||||
emptyList()
|
||||
|
||||
override fun SettingsWriter.runArbitraryTask(
|
||||
override fun Writer.runArbitraryTask(
|
||||
from: Module,
|
||||
to: Module,
|
||||
toModulePath: Path,
|
||||
data: ModulesToIrConversionData
|
||||
): TaskResult<Unit> = 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(
|
||||
|
||||
Reference in New Issue
Block a user