Wizard: introduce Android & JS multiplatform project kinds
#KT-36155 fixed
This commit is contained in:
+3
-2
@@ -31,9 +31,10 @@ abstract class BuildSystemPlugin(context: Context) : Plugin(context) {
|
||||
|
||||
validate { buildSystemType ->
|
||||
if (!buildSystemType.isGradle
|
||||
&& KotlinPlugin::projectKind.reference.notRequiredSettingValue == ProjectKind.Multiplatform
|
||||
&& KotlinPlugin::projectKind.reference.notRequiredSettingValue != ProjectKind.Singleplatform
|
||||
) {
|
||||
ValidationResult.ValidationError("Multiplatform project cannot be generated using ${buildSystemType.text}")
|
||||
val projectKind = KotlinPlugin::projectKind.reference.notRequiredSettingValue?.text?.capitalize() ?: "Project"
|
||||
ValidationResult.ValidationError("$projectKind cannot be generated using ${buildSystemType.text}")
|
||||
} else ValidationResult.OK
|
||||
}
|
||||
}
|
||||
|
||||
+3
-1
@@ -123,7 +123,9 @@ class KotlinPlugin(context: Context) : Plugin(context) {
|
||||
|
||||
enum class ProjectKind(override val text: String) : DisplayableSettingItem {
|
||||
Singleplatform("Singleplatform JVM project"),
|
||||
Multiplatform("Multiplatform project")
|
||||
Multiplatform("Multiplatform project"),
|
||||
Android("Android project"),
|
||||
Js("Kotlin/JS project")
|
||||
}
|
||||
|
||||
fun List<Module>.withAllSubModules(includeSourcesets: Boolean = false): List<Module> = buildList {
|
||||
|
||||
+2
-2
@@ -200,7 +200,7 @@ object AndroidApplication : ProjectTemplate() {
|
||||
Simple <b>Android</b> application with single activity
|
||||
""".trimIndent()
|
||||
override val suggestedProjectName = "myAndroidApplication"
|
||||
override val projectKind = ProjectKind.Multiplatform
|
||||
override val projectKind = ProjectKind.Android
|
||||
|
||||
override val setsPluginSettings: List<SettingWithValue<*, *>>
|
||||
get() = listOf(
|
||||
@@ -248,7 +248,7 @@ object JsBrowserApplication : ProjectTemplate() {
|
||||
override val title = "Kotlin/JS Frontend Application"
|
||||
override val htmlDescription = "Gradle project for a Kotlin/JS frontend web application"
|
||||
override val suggestedProjectName = "myKotlinJsApplication"
|
||||
override val projectKind = ProjectKind.Multiplatform
|
||||
override val projectKind = ProjectKind.Js
|
||||
|
||||
override val setsPluginSettings: List<SettingWithValue<*, *>>
|
||||
get() = listOf(
|
||||
|
||||
+1
@@ -78,6 +78,7 @@ class Module(
|
||||
configurator == MppModuleConfigurator -> "MPP Module"
|
||||
configurator == AndroidSinglePlatformModuleConfigurator -> "Android Module"
|
||||
configurator == IOSSinglePlatformModuleConfigurator -> "IOS Module"
|
||||
configurator == JsSingleplatformModuleConfigurator -> "JS Module"
|
||||
else -> "Module"
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user