diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/AndroidSinglePlatformModuleConfigurator.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/AndroidSinglePlatformModuleConfigurator.kt index a7076892077..b6e88893f6d 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/AndroidSinglePlatformModuleConfigurator.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/AndroidSinglePlatformModuleConfigurator.kt @@ -21,14 +21,19 @@ object AndroidSinglePlatformModuleConfigurator : SinglePlatformModuleConfigurator, AndroidModuleConfigurator { override val moduleKind: ModuleKind get() = ModuleKind.singleplatformAndroid + @NonNls override val id = "android" + @NonNls override val suggestedModuleName = "android" override val text = KotlinNewProjectWizardBundle.message("module.configurator.android") override val requiresRootBuildFile: Boolean = true + override val resourcesDirectoryName: String = "res" + override val kotlinDirectoryName: String = "java" + override fun createBuildFileIRs( reader: Reader, configurationData: ModulesToIrConversionData, diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/ModuleConfigurator.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/ModuleConfigurator.kt index 3aba8282104..692ef0a4b7d 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/ModuleConfigurator.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/ModuleConfigurator.kt @@ -212,6 +212,9 @@ interface ModuleConfigurator : DisplayableSettingItem, EntitiesOwnerDescriptor { val canContainSubModules: Boolean get() = false val requiresRootBuildFile: Boolean get() = false + val kotlinDirectoryName: String get() = Defaults.KOTLIN_DIR.toString() + val resourcesDirectoryName: String get() = Defaults.RESOURCES_DIR.toString() + fun createBuildFileIRs( reader: Reader, configurationData: ModulesToIrConversionData, diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/KotlinPlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/KotlinPlugin.kt index 32d0fc04705..a71488f2cd5 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/KotlinPlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/KotlinPlugin.kt @@ -10,6 +10,7 @@ import org.jetbrains.kotlin.tools.projectWizard.core.service.* import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.BuildFileIR import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.RepositoryIR import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.withIrs +import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.ModuleConfigurator import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase import org.jetbrains.kotlin.tools.projectWizard.plugins.StructurePlugin import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemPlugin @@ -106,14 +107,14 @@ class KotlinPlugin(context: Context) : Plugin(context) { val createSourcesetDirectories by pipelineTask(GenerationPhase.PROJECT_GENERATION) { runAfter(KotlinPlugin::createModules) withAction { - fun Path.createKotlinAndResourceDirectories() = with(service()) { - createDirectory(this@createKotlinAndResourceDirectories / Defaults.KOTLIN_DIR) andThen - createDirectory(this@createKotlinAndResourceDirectories / Defaults.RESOURCES_DIR) + fun Path.createKotlinAndResourceDirectories(moduleConfigurator: ModuleConfigurator) = with(service()) { + createDirectory(this@createKotlinAndResourceDirectories / moduleConfigurator.kotlinDirectoryName) andThen + createDirectory(this@createKotlinAndResourceDirectories / moduleConfigurator.resourcesDirectoryName) } forEachModule { moduleIR -> moduleIR.sourcesets.mapSequenceIgnore { sourcesetIR -> - sourcesetIR.path.createKotlinAndResourceDirectories() + sourcesetIR.path.createKotlinAndResourceDirectories(moduleIR.originalModule.configurator) } } } diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/TemplatesPlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/TemplatesPlugin.kt index d345c4cd152..0e427d03171 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/TemplatesPlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/TemplatesPlugin.kt @@ -2,8 +2,6 @@ package org.jetbrains.kotlin.tools.projectWizard.plugins.templates import org.jetbrains.kotlin.tools.projectWizard.core.* -import org.jetbrains.kotlin.tools.projectWizard.core.Defaults.KOTLIN_DIR -import org.jetbrains.kotlin.tools.projectWizard.core.Defaults.RESOURCES_DIR import org.jetbrains.kotlin.tools.projectWizard.core.Defaults.SRC_DIR import org.jetbrains.kotlin.tools.projectWizard.core.service.TemplateEngineService import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.* @@ -144,18 +142,19 @@ class TemplatesPlugin(context: Context) : Plugin(context) { && filePath.sourcesetType == SourcesetType.test && settingValue(module.originalModule, ModuleConfiguratorWithTests.testFramework)?.isPresent != true ) return null + val moduleConfigurator = module.originalModule.configurator return when (module) { is SingleplatformModuleIR -> { when (filePath) { - is SrcFilePath -> SRC_DIR / filePath.sourcesetType.toString() / KOTLIN_DIR - is ResourcesFilePath -> SRC_DIR / filePath.sourcesetType.toString() / RESOURCES_DIR + is SrcFilePath -> SRC_DIR / filePath.sourcesetType.toString() / moduleConfigurator.kotlinDirectoryName + is ResourcesFilePath -> SRC_DIR / filePath.sourcesetType.toString() / moduleConfigurator.resourcesDirectoryName } } is MultiplatformModuleIR -> { val directory = when (filePath) { - is SrcFilePath -> KOTLIN_DIR - is ResourcesFilePath -> RESOURCES_DIR + is SrcFilePath -> moduleConfigurator.kotlinDirectoryName + is ResourcesFilePath -> moduleConfigurator.resourcesDirectoryName } SRC_DIR / "${module.name}${filePath.sourcesetType.name.capitalize()}" / directory }