diff --git a/idea-plugin/build.gradle.kts b/idea-plugin/build.gradle.kts index 48c8a4da20..742d9e7e58 100644 --- a/idea-plugin/build.gradle.kts +++ b/idea-plugin/build.gradle.kts @@ -3,14 +3,14 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompile plugins { id("java") id("org.jetbrains.kotlin.jvm") version "1.5.10" - id("org.jetbrains.intellij") version "0.7.2" + id("org.jetbrains.intellij") version "1.1.2" id("org.jetbrains.changelog") version "1.1.2" } -fun properties(key: String) = project.findProperty(key).toString() +val projectProperties = ProjectProperties(project) group = "org.jetbrains.compose.desktop.ide" -version = properties("deploy.version") +version = projectProperties.deployVersion repositories { mavenCentral() @@ -21,15 +21,17 @@ dependencies { } intellij { - pluginName = "Compose Multiplatform IDE Support" - type = properties("platform.type") - version = properties("platform.version") - downloadSources = properties("platform.download.sources").toBoolean() + pluginName.set("Compose Multiplatform IDE Support") + type.set(projectProperties.platformType) + version.set(projectProperties.platformVersion) + downloadSources.set(projectProperties.platformDownloadSources) - setPlugins( - "java", - "com.intellij.gradle", - "org.jetbrains.kotlin" + plugins.set( + listOf( + "java", + "com.intellij.gradle", + "org.jetbrains.kotlin" + ) ) } @@ -49,17 +51,32 @@ tasks { } publishPlugin { - token(System.getenv("IDE_PLUGIN_PUBLISH_TOKEN")) - channels(properties("plugin.channels")) + token.set(System.getenv("IDE_PLUGIN_PUBLISH_TOKEN")) + channels.set(projectProperties.pluginChannels) } patchPluginXml { - sinceBuild(properties("plugin.since.build")) - untilBuild(properties("plugin.until.build")) + sinceBuild.set(projectProperties.pluginSinceBuild) + untilBuild.set(projectProperties.pluginUntilBuild) } runPluginVerifier { - ideVersions(properties("plugin.verifier.ide.versions")) - downloadDirectory("${project.buildDir}/pluginVerifier/ides") + ideVersions.set(projectProperties.pluginVerifierIdeVersions) } } + +class ProjectProperties(private val project: Project) { + val deployVersion get() = stringProperty("deploy.version") + val platformType get() = stringProperty("platform.type") + val platformVersion get() = stringProperty("platform.version") + val platformDownloadSources get() = stringProperty("platform.download.sources").toBoolean() + val pluginChannels get() = listProperty("plugin.channels") + val pluginSinceBuild get() = stringProperty("plugin.since.build") + val pluginUntilBuild get() = stringProperty("plugin.until.build") + val pluginVerifierIdeVersions get() = listProperty("plugin.verifier.ide.versions") + + private fun stringProperty(key: String): String = + project.findProperty(key)!!.toString() + private fun listProperty(key: String): List = + stringProperty(key).split(",").map { it.trim() } +}