diff options
author | Ilya Kirillov <ilya.kirillov@jetbrains.com> | 2020-10-01 16:03:32 +0300 |
---|---|---|
committer | kotlin-ide-monorepo-bot <kotlin-ide-monorepo-bot-no-reply@jetbrains.com> | 2020-10-19 11:29:00 +0000 |
commit | d1fe016887caa84ac5ab320592796f024835a7f2 (patch) | |
tree | 0b2dde10a8715a832d5663dbc4a3fb8cde271b93 /project-wizard | |
parent | 91f9c91d99fde4245cf5b284dcd86fa029af7394 (diff) | |
download | intellij-kotlin-d1fe016887caa84ac5ab320592796f024835a7f2.tar.gz |
Wizard: add compose desktop template
Original commit: db069c3264c0ba107864fb2c69624ec43325adc4
GitOrigin-RevId: 730073710b6febec43a8eef47e35f644a8051e65
Diffstat (limited to 'project-wizard')
17 files changed, 274 insertions, 4 deletions
diff --git a/project-wizard/cli/test/org/jetbrains/kotlin/tools/projectWizard/cli/ProjectTemplateBuildFileGenerationTestGenerated.java b/project-wizard/cli/test/org/jetbrains/kotlin/tools/projectWizard/cli/ProjectTemplateBuildFileGenerationTestGenerated.java index fdedbc141b76..4b92d2361374 100644 --- a/project-wizard/cli/test/org/jetbrains/kotlin/tools/projectWizard/cli/ProjectTemplateBuildFileGenerationTestGenerated.java +++ b/project-wizard/cli/test/org/jetbrains/kotlin/tools/projectWizard/cli/ProjectTemplateBuildFileGenerationTestGenerated.java @@ -70,4 +70,14 @@ public class ProjectTemplateBuildFileGenerationTestGenerated extends AbstractPro public void testNativeApplication() throws Exception { runTest("testData/projectTemplatesBuildFileGeneration/nativeApplication/"); } + + @TestMetadata("сomposeMultiplatformApplication") + public void testComposeMultiplatformApplication() throws Exception { + runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/composeMultiplatformApplication/"); + } + + @TestMetadata("composeDesktopApplication") + public void testComposeDesktopApplication() throws Exception { + runTest("libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/composeDesktopApplication/"); + } } diff --git a/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/composeDesktopApplication/build.gradle b/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/composeDesktopApplication/build.gradle new file mode 100644 index 000000000000..405a4056ad24 --- /dev/null +++ b/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/composeDesktopApplication/build.gradle @@ -0,0 +1,33 @@ +import org.jetbrains.compose.compose + +plugins { + id 'org.jetbrains.kotlin.jvm' version 'KOTLIN_VERSION' + id 'org.jetbrains.compose' version '0.1.0-build63' + id 'application' +} + +group = 'me.user' +version = '1.0-SNAPSHOT' + +repositories { + jcenter() + mavenCentral() + maven { url 'KOTLIN_REPO' } + maven { url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' } +} + +dependencies { + implementation compose.desktop.all +} + +compileKotlin { + kotlinOptions.jvmTarget = '1.8' +} + +compileTestKotlin { + kotlinOptions.jvmTarget = '1.8' +} + +application { + mainClassName = 'MainKt' +}
\ No newline at end of file diff --git a/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/composeDesktopApplication/build.gradle.kts b/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/composeDesktopApplication/build.gradle.kts new file mode 100644 index 000000000000..0389195322d7 --- /dev/null +++ b/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/composeDesktopApplication/build.gradle.kts @@ -0,0 +1,30 @@ +import org.jetbrains.compose.compose +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +plugins { + kotlin("jvm") version "KOTLIN_VERSION" + id("org.jetbrains.compose") version "0.1.0-build63" + application +} + +group = "me.user" +version = "1.0-SNAPSHOT" + +repositories { + jcenter() + mavenCentral() + maven { url = uri("KOTLIN_REPO") } + maven { url = uri("https://maven.pkg.jetbrains.space/public/p/compose/dev") } +} + +dependencies { + implementation(compose.desktop.all) +} + +tasks.withType<KotlinCompile>() { + kotlinOptions.jvmTarget = "1.8" +} + +application { + mainClassName = "MainKt" +}
\ No newline at end of file diff --git a/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/composeDesktopApplication/settings.gradle b/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/composeDesktopApplication/settings.gradle new file mode 100644 index 000000000000..64e250c0e625 --- /dev/null +++ b/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/composeDesktopApplication/settings.gradle @@ -0,0 +1,10 @@ +pluginManagement { + repositories { + gradlePluginPortal() + mavenCentral() + maven { url 'KOTLIN_REPO' } + maven { url 'https://maven.pkg.jetbrains.space/public/p/compose/dev' } + } + +} +rootProject.name = 'composeDesktopApplication'
\ No newline at end of file diff --git a/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/composeDesktopApplication/settings.gradle.kts b/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/composeDesktopApplication/settings.gradle.kts new file mode 100644 index 000000000000..0e1e742260ba --- /dev/null +++ b/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/composeDesktopApplication/settings.gradle.kts @@ -0,0 +1,10 @@ +pluginManagement { + repositories { + gradlePluginPortal() + mavenCentral() + maven { url = uri("KOTLIN_REPO") } + maven { url = uri("https://maven.pkg.jetbrains.space/public/p/compose/dev") } + } + +} +rootProject.name = "composeDesktopApplication"
\ No newline at end of file diff --git a/project-wizard/core/resources/messages/KotlinNewProjectWizardBundle.properties b/project-wizard/core/resources/messages/KotlinNewProjectWizardBundle.properties index d38fa0eb3e48..7a54394c76a0 100644 --- a/project-wizard/core/resources/messages/KotlinNewProjectWizardBundle.properties +++ b/project-wizard/core/resources/messages/KotlinNewProjectWizardBundle.properties @@ -39,6 +39,7 @@ project.kind.android=Android project.kind.kotlin.js=Kotlin/JS project.kind.multiplatform=Multiplatform project.kind.singleplatform=JVM +project.kind.compose=JetBrains Compose project=Project @@ -147,9 +148,16 @@ project.template.mpp.mobile.lib.title=Mobile Library project.template.mpp.mobile.lib.description=Library that supports sharing code between iOS and Android. +project.template.compose.desktop.title=Desktop +project.template.compose.desktop.description=A Compose application targeting the desktop JVM platform (Windows, Linux, macOS) + + module.template.console.jvm.title=Console Application module.template.console.jvm.description=Simple "Hello World!" Kotlin/JVM application that works in the console +module.template.compose.desktop.title=Compose Desktop Application +module.template.compose.desktop.description=A Compose application targeting the desktop JVM platform + module.template.mpp.mobile.title=Mobile Application module.template.mpp.mobile.description=Mobile applications for iOS and Android with Kotlin Multiplatform Mobile, which supports sharing common code between platforms. diff --git a/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/composeDesktopTemplate/main.kt b/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/composeDesktopTemplate/main.kt new file mode 100644 index 000000000000..4642415a5033 --- /dev/null +++ b/project-wizard/core/resources/org/jetbrains/kotlin/tools/projectWizard/templates/composeDesktopTemplate/main.kt @@ -0,0 +1,20 @@ +import androidx.compose.desktop.Window +import androidx.compose.foundation.Text +import androidx.compose.material.Button +import androidx.compose.material.MaterialTheme +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue + +fun main() = Window { + var text by remember { mutableStateOf("Hello, World!") } + + MaterialTheme { + Button(onClick = { + text = "Hello, Desktop!" + }) { + Text(text) + } + } +}
\ No newline at end of file diff --git a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/Versions.kt b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/Versions.kt index d40d30f43c7d..daae1de58d88 100644 --- a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/Versions.kt +++ b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/Versions.kt @@ -14,6 +14,7 @@ object Versions { val KTOR = version("1.4.0") val JUNIT = version("4.13") val JUNIT5 = version("5.6.0") + val JETBRAINS_COMPOSE = version("0.1.0-build63") object ANDROID { val ANDROID_MATERIAL = version("1.2.1") diff --git a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/BuildFileIR.kt b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/BuildFileIR.kt index 6331efdb7e7f..ae5343cc522b 100644 --- a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/BuildFileIR.kt +++ b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/BuildFileIR.kt @@ -17,7 +17,7 @@ import java.nio.file.Path interface FileIR : BuildSystemIR, IrsOwner -data class BuildFileIR( +data class BuildFileIR constructor( val name: String, val directoryPath: Path, val modules: ModulesStructureIR, diff --git a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/BuildSystemPluginIR.kt b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/BuildSystemPluginIR.kt index e988eb83f0ec..0c7eea1ca39e 100644 --- a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/BuildSystemPluginIR.kt +++ b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/BuildSystemPluginIR.kt @@ -32,9 +32,17 @@ data class ApplicationPluginIR(val mainClass: String) : DefaultBuildSystemPlugin } } -data class GradleOnlyPluginByNameIR(@NonNls val pluginId: String, override val priority: Int? = null) : BuildSystemPluginIR, GradleIR { +data class GradleOnlyPluginByNameIR( + @NonNls val pluginId: String, + val version: Version? = null, + override val priority: Int? = null, +) : BuildSystemPluginIR, GradleIR { override fun GradlePrinter.renderGradle() { call("id") { +pluginId.quotified } + version?.let { version -> + +" version " + +version.text.quotified + } } } diff --git a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/DependencyIR.kt b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/DependencyIR.kt index 6d4d12713091..29698bf7745b 100644 --- a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/DependencyIR.kt +++ b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/DependencyIR.kt @@ -168,6 +168,19 @@ data class KotlinArbitraryDependencyIR( override fun withDependencyType(type: DependencyType): KotlinArbitraryDependencyIR = copy(dependencyType = type) } +data class CustomGradleDependencyDependencyIR( + val dependency: String, + override val dependencyType: DependencyType +) : DependencyIR, GradleIR { + override fun withDependencyType(type: DependencyType): CustomGradleDependencyDependencyIR = copy(dependencyType = type) + + override fun GradlePrinter.renderGradle() { + call(dependencyType.getGradleName()) { + +dependency + } + } +} + enum class StdlibType(val artifact: String) { StdlibJdk7("stdlib-jdk7"), StdlibJdk8("stdlib-jdk8"), diff --git a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/plugins/Plugins.kt b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/plugins/Plugins.kt index b4f3c584bb20..9dcf07de2fd8 100644 --- a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/plugins/Plugins.kt +++ b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/plugins/Plugins.kt @@ -33,6 +33,7 @@ object Plugins { ReactJsTemplatesPlugin(context), SimpleNodeJsTemplatesPlugin(context), NativeConsoleApplicationTemplatePlugin(context), + ComposeTemplatesPlugin(context), MobileMppTemplatePlugin(context), ) } diff --git a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/KotlinPlugin.kt b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/KotlinPlugin.kt index 8c3d44f37889..ed9e01e81a43 100644 --- a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/KotlinPlugin.kt +++ b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/KotlinPlugin.kt @@ -198,7 +198,8 @@ enum class ProjectKind(override val text: String) : DisplayableSettingItem { Singleplatform(KotlinNewProjectWizardBundle.message("project.kind.singleplatform")), Multiplatform(KotlinNewProjectWizardBundle.message("project.kind.multiplatform")), Android(KotlinNewProjectWizardBundle.message("project.kind.android")), - Js(KotlinNewProjectWizardBundle.message("project.kind.kotlin.js")) + Js(KotlinNewProjectWizardBundle.message("project.kind.kotlin.js")), + COMPOSE(KotlinNewProjectWizardBundle.message("project.kind.compose")) } fun List<Module>.withAllSubModules(includeSourcesets: Boolean = false): List<Module> = buildList { diff --git a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/ComposeTemplatesPlugin.kt b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/ComposeTemplatesPlugin.kt new file mode 100644 index 000000000000..fce25b9a4a36 --- /dev/null +++ b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/ComposeTemplatesPlugin.kt @@ -0,0 +1,26 @@ +package org.jetbrains.kotlin.tools.projectWizard.plugins.templates + +import org.jetbrains.kotlin.tools.projectWizard.core.Context +import org.jetbrains.kotlin.tools.projectWizard.core.PluginSettingsOwner +import org.jetbrains.kotlin.tools.projectWizard.core.entity.PipelineTask +import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase +import org.jetbrains.kotlin.tools.projectWizard.templates.compose.ComposeJvmDesktopTemplate + +class ComposeTemplatesPlugin(context: Context) : TemplatePlugin(context) { + override val path = pluginPath + + override val pipelineTasks: List<PipelineTask> = super.pipelineTasks + + listOf( + addTemplate, + ) + + companion object : PluginSettingsOwner() { + override val pluginPath = "template.compose" + + val addTemplate by pipelineTask(GenerationPhase.PREPARE) { + withAction { + TemplatesPlugin.addTemplate.execute(ComposeJvmDesktopTemplate()) + } + } + } +}
\ No newline at end of file diff --git a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/projectTemplates/ProjectTemplate.kt b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/projectTemplates/ProjectTemplate.kt index e5a4a756c677..eeddd63453b4 100644 --- a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/projectTemplates/ProjectTemplate.kt +++ b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/projectTemplates/ProjectTemplate.kt @@ -17,6 +17,8 @@ import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ProjectKind import org.jetbrains.kotlin.tools.projectWizard.settings.DisplayableSettingItem import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.* import org.jetbrains.kotlin.tools.projectWizard.templates.* +import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.JvmSinglePlatformModuleConfigurator +import org.jetbrains.kotlin.tools.projectWizard.templates.compose.ComposeJvmDesktopTemplate import org.jetbrains.kotlin.tools.projectWizard.templates.mpp.MobileMppTemplate sealed class ProjectTemplate : DisplayableSettingItem { @@ -80,7 +82,8 @@ sealed class ProjectTemplate : DisplayableSettingItem { FrontendApplicationProjectTemplate, ReactApplicationProjectTemplate, FullStackWebApplicationProjectTemplate, - NodeJsApplicationProjectTemplate + NodeJsApplicationProjectTemplate, + ComposeDesktopApplicationProjectTemplate, ) fun byId(id: String): ProjectTemplate? = ALL.firstOrNull { @@ -443,4 +446,31 @@ object NodeJsApplicationProjectTemplate : ProjectTemplate() { ) ) ) +} + +object ComposeDesktopApplicationProjectTemplate : ProjectTemplate() { + override val title = KotlinNewProjectWizardBundle.message("project.template.compose.desktop.title") + override val description = KotlinNewProjectWizardBundle.message("project.template.compose.desktop.description") + override val id = "composeDesktopApplication" + + @NonNls + override val suggestedProjectName = "myComposeDesktopApplication" + override val projectKind = ProjectKind.COMPOSE + + override val setsPluginSettings: List<SettingWithValue<*, *>> + get() = listOf( + KotlinPlugin.modules.reference withValue listOf( + Module( + "compose", + JvmSinglePlatformModuleConfigurator, + template = ComposeJvmDesktopTemplate(), + sourcesets = SourcesetType.ALL.map { type -> + Sourceset(type, dependencies = emptyList()) + }, + subModules = emptyList() + ).withConfiguratorSettings(JvmSinglePlatformModuleConfigurator) { + ModuleConfiguratorWithTests.testFramework withValue KotlinTestFramework.NONE + } + ) + ) }
\ No newline at end of file diff --git a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/settings/buildsystem/Repository.kt b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/settings/buildsystem/Repository.kt index bf142e57574c..5b8402e427dd 100644 --- a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/settings/buildsystem/Repository.kt +++ b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/settings/buildsystem/Repository.kt @@ -37,10 +37,18 @@ data class BintrayRepository(val repository: String, val base: String = "https:/ get() = "bintray." + repository.replace('/', '.') } +data class JetBrainsSpace(val repository: String) : CustomMavenRepository { + override val url: String = "https://maven.pkg.jetbrains.space/public/p/$repository" + + override val idForMaven: String + get() = "jetbrains." + repository.replace('/', '.') +} + object Repositories { val KTOR_BINTRAY = BintrayRepository("kotlin/ktor") val KOTLINX = BintrayRepository("kotlin/kotlinx") val KOTLIN_JS_WRAPPERS_BINTRAY = BintrayRepository("kotlin/kotlin-js-wrappers") val KOTLIN_EAP_BINTRAY = BintrayRepository("kotlin/kotlin-eap") val KOTLIN_DEV_BINTRAY = BintrayRepository("kotlin/kotlin-dev") + val JETBRAINS_COMPOSE_DEV = JetBrainsSpace("compose/dev") } diff --git a/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/compose/ComposeJvmDesktopTemplate.kt b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/compose/ComposeJvmDesktopTemplate.kt new file mode 100644 index 000000000000..bdc8382747e1 --- /dev/null +++ b/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/templates/compose/ComposeJvmDesktopTemplate.kt @@ -0,0 +1,61 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.tools.projectWizard.templates.compose + +import org.jetbrains.annotations.NonNls +import org.jetbrains.kotlin.tools.projectWizard.KotlinNewProjectWizardBundle +import org.jetbrains.kotlin.tools.projectWizard.Versions +import org.jetbrains.kotlin.tools.projectWizard.core.* +import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.* +import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.GradleImportIR +import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.irsList +import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.multiplatform.TargetConfigurationIR +import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.multiplatform.addWithJavaIntoJvmTarget +import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemPlugin +import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleType +import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.DefaultRepository +import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Repositories +import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.SourcesetType +import org.jetbrains.kotlin.tools.projectWizard.templates.FileTemplateDescriptor +import org.jetbrains.kotlin.tools.projectWizard.templates.FileTemplateDescriptorWithPath +import org.jetbrains.kotlin.tools.projectWizard.templates.Template +import org.jetbrains.kotlin.tools.projectWizard.templates.asSrcOf + +class ComposeJvmDesktopTemplate : Template() { + @NonNls + override val id: String = "composeDesktopTemplate" + + override val title: String = KotlinNewProjectWizardBundle.message("module.template.compose.desktop.title") + override val description: String = KotlinNewProjectWizardBundle.message("module.template.compose.desktop.description") + + override val moduleTypes: Set<ModuleType> = setOf(ModuleType.jvm) + + override fun Writer.getIrsToAddToBuildFile( + module: ModuleIR + ) = irsList { + +RepositoryIR(Repositories.JETBRAINS_COMPOSE_DEV) + +RepositoryIR(DefaultRepository.JCENTER) + +GradleOnlyPluginByNameIR("org.jetbrains.compose", version = Versions.JETBRAINS_COMPOSE) + +runTaskIrs("MainKt") + + +GradleImportIR("org.jetbrains.compose.compose") + } + + override fun Writer.getRequiredLibraries(module: ModuleIR): List<DependencyIR> = listOf( + CustomGradleDependencyDependencyIR("compose.desktop.all", dependencyType = DependencyType.MAIN) + ) + + override fun Writer.runArbitratyTask(module: ModuleIR): TaskResult<Unit> = + BuildSystemPlugin.pluginRepositoreis.addValues(Repositories.JETBRAINS_COMPOSE_DEV) + + override fun updateTargetIr(module: ModuleIR, targetConfigurationIR: TargetConfigurationIR): TargetConfigurationIR = + targetConfigurationIR.addWithJavaIntoJvmTarget() + + override fun Reader.getFileTemplates(module: ModuleIR) = + buildList<FileTemplateDescriptorWithPath> { + +(FileTemplateDescriptor("$id/main.kt", "main.kt".asPath()) asSrcOf SourcesetType.main) + } +} |