Implement runners without intellij plugin, share common part

This commit is contained in:
Ilya Chernikov
2018-01-16 11:50:57 +01:00
committed by Vyacheslav Gerasimov
parent 0a95e7b20f
commit 434bbafe58
5 changed files with 74 additions and 117 deletions
+7 -56
View File
@@ -1,20 +1,4 @@
import org.jetbrains.intellij.tasks.PrepareSandboxTask
import org.jetbrains.intellij.tasks.RunIdeTask
val intellijUltimateEnabled : Boolean by rootProject.extra
buildscript {
repositories {
maven(url = "https://oss.sonatype.org/content/repositories/snapshots/") // for intellij plugin
maven(url = "http://dl.bintray.com/jetbrains/intellij-plugin-service") // for intellij plugin
jcenter()
}
dependencies {
classpath("org.jetbrains.intellij.plugins:gradle-intellij-plugin:0.3.0-SNAPSHOT")
}
}
apply { plugin("kotlin") }
dependencies {
@@ -23,51 +7,18 @@ dependencies {
compileOnly(project(":idea:idea-gradle"))
compileOnly(project(":idea:idea-jvm"))
compile(intellijDep())
runtimeOnly(files(toolsJar()))
compileOnly(intellijDep())
}
afterEvaluate {
val ideaUltimatePluginDir: File by rootProject.extra
val ideaUltimateSandboxDir: File by rootProject.extra
val intellijUltimateEnabled : Boolean by rootProject.extra
tasks.findByName("runIde")?.let { tasks.remove(it) }
tasks.findByName("prepareSandbox")?.let { tasks.remove(it) }
val ideaUltimatePluginDir: File by rootProject.extra
val ideaUltimateSandboxDir: File by rootProject.extra
val prepareSandbox by task<PrepareSandboxTask> {
configDirectory = File(ideaUltimateSandboxDir, "config")
// the rest are just some "fake" values, to keeping PrepareSandboxTask happy
setPluginName("Kotlin")
if (intellijUltimateEnabled) {
runIdeTask("runUltimate", ideaUltimatePluginDir, ideaUltimateSandboxDir) {
dependsOn(":dist", ":prepare:idea-plugin:idea-plugin", ":ideaPlugin", ":ultimate:idea-ultimate-plugin")
setPluginJar(File(ideaUltimatePluginDir, "lib/kotlin-script-runtime.jar")) // any small jar will do
destinationDir = File(buildDir, "sandbox-fake")
}
if (intellijUltimateEnabled) {
task<RunIdeTask>("runUltimate") {
dependsOn(":dist", ":prepare:idea-plugin:idea-plugin", ":ideaPlugin", ":ultimate:idea-ultimate-plugin")
dependsOn(prepareSandbox)
group = "intellij"
description = "Runs Intellij IDEA Ultimate with installed plugin."
setIdeaDirectory(intellijUltimateRootDir())
setConfigDirectory(File(ideaUltimateSandboxDir, "config"))
setSystemDirectory(ideaUltimateSandboxDir)
setPluginsDirectory(ideaUltimatePluginDir.parent)
jvmArgs(
"-Xmx1250m",
"-XX:ReservedCodeCacheSize=240m",
"-XX:+HeapDumpOnOutOfMemoryError",
"-ea",
"-Didea.is.internal=true",
"-Didea.debug.mode=true",
"-Dapple.laf.useScreenMenuBar=true",
"-Dapple.awt.graphics.UseQuartz=true",
"-Dsun.io.useCanonCaches=false",
"-Dkotlin.internal.mode.enabled=true"
)
if (project.hasProperty("noPCE")) {
jvmArgs("-Didea.ProcessCanceledException=disabled")
}
}
}
}