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.annotations.NonNls
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.KotlinNewProjectWizardBundle
|
import org.jetbrains.kotlin.tools.projectWizard.KotlinNewProjectWizardBundle
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.*
|
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.buildSystem.gradle.GradlePlugin
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModulesToIrConversionData
|
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModulesToIrConversionData
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.*
|
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 org.jetbrains.kotlin.tools.projectWizard.templates.FileTemplateDescriptor
|
||||||
import java.nio.file.Path
|
import java.nio.file.Path
|
||||||
|
|
||||||
object IOSSinglePlatformModuleConfigurator : SinglePlatformModuleConfigurator, ModuleConfiguratorSettings() {
|
object IOSSinglePlatformModuleConfigurator : SinglePlatformModuleConfigurator,
|
||||||
|
ModuleConfiguratorSettings(),
|
||||||
|
ModuleConfiguratorProperties,
|
||||||
|
ModuleConfiguratorWithProperties {
|
||||||
|
|
||||||
@NonNls
|
@NonNls
|
||||||
override val id = "IOS Module"
|
override val id = "IOS Module"
|
||||||
|
|
||||||
@@ -71,7 +75,7 @@ object IOSSinglePlatformModuleConfigurator : SinglePlatformModuleConfigurator, M
|
|||||||
|
|
||||||
private fun Reader.createTemplatesSettingValues(module: Module): Map<String, Any?> {
|
private fun Reader.createTemplatesSettingValues(module: Module): Map<String, Any?> {
|
||||||
val dependentModule = inContextOfModuleConfigurator(module) {
|
val dependentModule = inContextOfModuleConfigurator(module) {
|
||||||
dependentModule.reference.notRequiredSettingValue?.module
|
dependentModule.reference.propertyValue.module
|
||||||
}
|
}
|
||||||
|
|
||||||
return mapOf(
|
return mapOf(
|
||||||
@@ -93,13 +97,10 @@ object IOSSinglePlatformModuleConfigurator : SinglePlatformModuleConfigurator, M
|
|||||||
@NonNls
|
@NonNls
|
||||||
private const val DEFAULT_APP_NAME = "appName"
|
private const val DEFAULT_APP_NAME = "appName"
|
||||||
|
|
||||||
val dependentModule by valueSetting<DependentModuleReference>(
|
val dependentModule by property(DependentModuleReference.EMPTY)
|
||||||
"",
|
|
||||||
GenerationPhase.PROJECT_GENERATION,
|
override fun getConfiguratorProperties(): List<ModuleConfiguratorProperty<*>> =
|
||||||
alwaysFailingParser("Dependent module setting should not be parsed")
|
listOf(dependentModule)
|
||||||
) {
|
|
||||||
defaultValue = value(DependentModuleReference.EMPTY)
|
|
||||||
}
|
|
||||||
|
|
||||||
data class DependentModuleReference(val module: Module?) {
|
data class DependentModuleReference(val module: Module?) {
|
||||||
companion object {
|
companion object {
|
||||||
|
|||||||
+5
-4
@@ -50,7 +50,7 @@ sealed class ModuleDependencyType(
|
|||||||
}.asSingletonList()
|
}.asSingletonList()
|
||||||
}
|
}
|
||||||
|
|
||||||
open fun SettingsWriter.runArbitraryTask(
|
open fun Writer.runArbitraryTask(
|
||||||
from: Module,
|
from: Module,
|
||||||
to: Module,
|
to: Module,
|
||||||
toModulePath: Path,
|
toModulePath: Path,
|
||||||
@@ -78,14 +78,15 @@ sealed class ModuleDependencyType(
|
|||||||
override fun createDependencyIrs(from: Module, to: Module, data: ModulesToIrConversionData): List<BuildSystemIR> =
|
override fun createDependencyIrs(from: Module, to: Module, data: ModulesToIrConversionData): List<BuildSystemIR> =
|
||||||
emptyList()
|
emptyList()
|
||||||
|
|
||||||
override fun SettingsWriter.runArbitraryTask(
|
override fun Writer.runArbitraryTask(
|
||||||
from: Module,
|
from: Module,
|
||||||
to: Module,
|
to: Module,
|
||||||
toModulePath: Path,
|
toModulePath: Path,
|
||||||
data: ModulesToIrConversionData
|
data: ModulesToIrConversionData
|
||||||
): TaskResult<Unit> = inContextOfModuleConfigurator(from) {
|
): TaskResult<Unit> = inContextOfModuleConfigurator(from) {
|
||||||
IOSSinglePlatformModuleConfigurator.dependentModule.reference
|
IOSSinglePlatformModuleConfigurator.dependentModule.reference.update {
|
||||||
.setValue(IOSSinglePlatformModuleConfigurator.DependentModuleReference(to))
|
IOSSinglePlatformModuleConfigurator.DependentModuleReference(to).asSuccess()
|
||||||
|
}
|
||||||
val dummyFilePath = Defaults.SRC_DIR / "${to.iosTargetSafe()!!.name}Main" / to.configurator.kotlinDirectoryName / "dummyFile.kt"
|
val dummyFilePath = Defaults.SRC_DIR / "${to.iosTargetSafe()!!.name}Main" / to.configurator.kotlinDirectoryName / "dummyFile.kt"
|
||||||
TemplatesPlugin.addFileTemplate.execute(
|
TemplatesPlugin.addFileTemplate.execute(
|
||||||
FileTemplate(
|
FileTemplate(
|
||||||
|
|||||||
Reference in New Issue
Block a user