Build: Add :prepare:cidr-plugin project
This commit is contained in:
Generated
+1
@@ -1,6 +1,7 @@
|
|||||||
<component name="ProjectDictionaryState">
|
<component name="ProjectDictionaryState">
|
||||||
<dictionary name="4u7">
|
<dictionary name="4u7">
|
||||||
<words>
|
<words>
|
||||||
|
<w>cidr</w>
|
||||||
<w>foldable</w>
|
<w>foldable</w>
|
||||||
</words>
|
</words>
|
||||||
</dictionary>
|
</dictionary>
|
||||||
|
|||||||
@@ -94,6 +94,7 @@ val ideaSandboxDir = "$commonLocalDataDir/ideaSandbox"
|
|||||||
val ideaUltimateSandboxDir = "$commonLocalDataDir/ideaUltimateSandbox"
|
val ideaUltimateSandboxDir = "$commonLocalDataDir/ideaUltimateSandbox"
|
||||||
val ideaPluginDir = "$distDir/artifacts/ideaPlugin/Kotlin"
|
val ideaPluginDir = "$distDir/artifacts/ideaPlugin/Kotlin"
|
||||||
val ideaUltimatePluginDir = "$distDir/artifacts/ideaUltimatePlugin/Kotlin"
|
val ideaUltimatePluginDir = "$distDir/artifacts/ideaUltimatePlugin/Kotlin"
|
||||||
|
val cidrPluginDir = "$distDir/artifacts/cidrPlugin/Kotlin"
|
||||||
|
|
||||||
// TODO: use "by extra()" syntax where possible
|
// TODO: use "by extra()" syntax where possible
|
||||||
extra["distLibDir"] = project.file(distLibDir)
|
extra["distLibDir"] = project.file(distLibDir)
|
||||||
@@ -103,6 +104,7 @@ extra["ideaSandboxDir"] = project.file(ideaSandboxDir)
|
|||||||
extra["ideaUltimateSandboxDir"] = project.file(ideaUltimateSandboxDir)
|
extra["ideaUltimateSandboxDir"] = project.file(ideaUltimateSandboxDir)
|
||||||
extra["ideaPluginDir"] = project.file(ideaPluginDir)
|
extra["ideaPluginDir"] = project.file(ideaPluginDir)
|
||||||
extra["ideaUltimatePluginDir"] = project.file(ideaUltimatePluginDir)
|
extra["ideaUltimatePluginDir"] = project.file(ideaUltimatePluginDir)
|
||||||
|
extra["cidrPluginDir"] = project.file(cidrPluginDir)
|
||||||
extra["isSonatypeRelease"] = false
|
extra["isSonatypeRelease"] = false
|
||||||
|
|
||||||
Properties().apply {
|
Properties().apply {
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
import groovy.lang.Closure
|
import groovy.lang.Closure
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.gradle.api.Task
|
import org.gradle.api.Task
|
||||||
|
import org.gradle.api.file.CopySourceSpec
|
||||||
import org.gradle.api.file.SourceDirectorySet
|
import org.gradle.api.file.SourceDirectorySet
|
||||||
import org.gradle.api.internal.AbstractTask
|
|
||||||
import org.gradle.api.plugins.JavaPluginConvention
|
import org.gradle.api.plugins.JavaPluginConvention
|
||||||
import org.gradle.api.tasks.JavaExec
|
import org.gradle.api.tasks.JavaExec
|
||||||
import org.gradle.api.tasks.SourceSetOutput
|
import org.gradle.api.tasks.SourceSetOutput
|
||||||
@@ -13,6 +13,7 @@ import org.gradle.kotlin.dsl.extra
|
|||||||
import org.gradle.kotlin.dsl.get
|
import org.gradle.kotlin.dsl.get
|
||||||
import org.gradle.kotlin.dsl.the
|
import org.gradle.kotlin.dsl.the
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
import java.util.concurrent.Callable
|
||||||
|
|
||||||
inline fun <reified T : Task> Project.task(noinline configuration: T.() -> Unit) = tasks.creating(T::class, configuration)
|
inline fun <reified T : Task> Project.task(noinline configuration: T.() -> Unit) = tasks.creating(T::class, configuration)
|
||||||
|
|
||||||
@@ -61,4 +62,6 @@ fun Project.getBooleanProperty(name: String): Boolean? = this.findProperty(name)
|
|||||||
val v = it.toString()
|
val v = it.toString()
|
||||||
if (v.isBlank()) true
|
if (v.isBlank()) true
|
||||||
else v.toBoolean()
|
else v.toBoolean()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline fun CopySourceSpec.from(crossinline filesProvider: () -> Any?): CopySourceSpec = from(Callable { filesProvider() })
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
||||||
|
import groovy.lang.Closure
|
||||||
|
import java.io.FilterReader
|
||||||
|
|
||||||
|
description = "Kotlin AppCode & CLion plugin"
|
||||||
|
|
||||||
|
apply {
|
||||||
|
plugin("kotlin")
|
||||||
|
}
|
||||||
|
|
||||||
|
val ideaPluginDir: File by rootProject.extra
|
||||||
|
val cidrPluginDir: File by rootProject.extra
|
||||||
|
|
||||||
|
val kotlinPlugin by configurations.creating
|
||||||
|
|
||||||
|
val pluginXmlPath = "META-INF/plugin.xml"
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
kotlinPlugin(project(":prepare:idea-plugin", configuration = "runtimeJar"))
|
||||||
|
}
|
||||||
|
|
||||||
|
val pluginXml by tasks.creating {
|
||||||
|
val kotlinVersion: String by rootProject.extra
|
||||||
|
val pluginFullVersionNumber = findProperty("pluginVersion") as? String
|
||||||
|
?: "$kotlinVersion-CIDR"
|
||||||
|
|
||||||
|
inputs.property("pluginFullVersionNumber", pluginFullVersionNumber)
|
||||||
|
inputs.files(kotlinPlugin)
|
||||||
|
outputs.files(File(buildDir, name, pluginXmlPath))
|
||||||
|
|
||||||
|
doFirst {
|
||||||
|
val placeholderRegex = Regex(
|
||||||
|
"""<!-- CLION-PLUGIN-PLACEHOLDER-START -->(.*)<!-- CLION-PLUGIN-PLACEHOLDER-END -->""",
|
||||||
|
RegexOption.DOT_MATCHES_ALL)
|
||||||
|
val versionRegex = Regex("""<version>([^<]+)</version>""")
|
||||||
|
|
||||||
|
zipTree(inputs.files.singleFile)
|
||||||
|
.matching { include(pluginXmlPath) }
|
||||||
|
.singleFile
|
||||||
|
.readText()
|
||||||
|
.replace(placeholderRegex, "")
|
||||||
|
.replace(versionRegex, "<version>$pluginFullVersionNumber</version>")
|
||||||
|
.also { pluginXmlText ->
|
||||||
|
outputs.files.singleFile.writeText(pluginXmlText)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val jar = runtimeJar {
|
||||||
|
archiveName = "kotlin-plugin.jar"
|
||||||
|
dependsOn(kotlinPlugin)
|
||||||
|
from {
|
||||||
|
zipTree(kotlinPlugin.singleFile).matching {
|
||||||
|
exclude(pluginXmlPath)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
from(pluginXml) { into("META-INF") }
|
||||||
|
}
|
||||||
|
|
||||||
|
task<Copy>("cidrPlugin") {
|
||||||
|
into(cidrPluginDir)
|
||||||
|
from(ideaPluginDir) { exclude("lib/kotlin-plugin.jar") }
|
||||||
|
from(jar) { into("lib") }
|
||||||
|
}
|
||||||
@@ -118,6 +118,7 @@ include ":kotlin-build-common",
|
|||||||
":prepare:formatter",
|
":prepare:formatter",
|
||||||
":prepare:ide-lazy-resolver",
|
":prepare:ide-lazy-resolver",
|
||||||
":prepare:idea-plugin",
|
":prepare:idea-plugin",
|
||||||
|
":prepare:cidr-plugin",
|
||||||
":android-lint",
|
":android-lint",
|
||||||
":kotlin-compiler",
|
":kotlin-compiler",
|
||||||
":kotlin-compiler-embeddable",
|
":kotlin-compiler-embeddable",
|
||||||
|
|||||||
Reference in New Issue
Block a user