8afb6d2761
Introduce base module for ide compiler plugins
145 lines
4.9 KiB
Kotlin
145 lines
4.9 KiB
Kotlin
plugins {
|
|
kotlin("jvm")
|
|
id("jps-compatible")
|
|
}
|
|
|
|
dependencies {
|
|
compile(project(":idea:idea-frontend-fir"))
|
|
compile(project(":idea:formatter"))
|
|
compile(intellijDep())
|
|
compile(intellijCoreDep())
|
|
|
|
// <temp>
|
|
compile(project(":idea:idea-core"))
|
|
compile(project(":idea"))
|
|
// </temp>
|
|
testCompile(projectTests(":idea:performanceTests"))
|
|
|
|
|
|
testCompile(toolsJar())
|
|
testCompile(projectTests(":idea"))
|
|
testCompile(projectTests(":idea:idea-fir"))
|
|
compile(project(":idea:idea-fir"))
|
|
testCompile(projectTests(":compiler:tests-common"))
|
|
testCompile(projectTests(":idea:idea-test-framework"))
|
|
testCompile(projectTests(":idea:idea-frontend-fir"))
|
|
testCompile(project(":kotlin-test:kotlin-test-junit"))
|
|
testCompile(commonDep("junit:junit"))
|
|
|
|
testCompileOnly(intellijDep())
|
|
testRuntime(intellijDep())
|
|
|
|
compile(intellijPluginDep("java"))
|
|
testRuntimeOnly(intellijPluginDep("java"))
|
|
|
|
testRuntimeOnly(intellijDep())
|
|
testRuntimeOnly(intellijRuntimeAnnotations())
|
|
testRuntimeOnly(toolsJar())
|
|
testRuntimeOnly(project(":kotlin-reflect"))
|
|
testRuntimeOnly(project(":plugins:android-extensions-ide"))
|
|
testRuntimeOnly(project(":plugins:kapt3-idea"))
|
|
testRuntimeOnly(project(":sam-with-receiver-ide-plugin"))
|
|
testRuntimeOnly(project(":noarg-ide-plugin"))
|
|
testRuntimeOnly(project(":allopen-ide-plugin"))
|
|
testRuntimeOnly(project(":kotlin-scripting-idea"))
|
|
testRuntimeOnly(project(":kotlinx-serialization-ide-plugin"))
|
|
testRuntimeOnly(project(":plugins:parcelize:parcelize-ide"))
|
|
testRuntimeOnly(project(":plugins:lombok:lombok-ide-plugin"))
|
|
testRuntimeOnly(project(":nj2k:nj2k-services"))
|
|
testRuntimeOnly(project(":kotlin-reflect"))
|
|
testRuntimeOnly(project(":idea:kotlin-gradle-tooling"))
|
|
testRuntimeOnly(project(":kotlin-gradle-statistics"))
|
|
|
|
testImplementation("khttp:khttp:1.0.0")
|
|
|
|
testImplementation(intellijPluginDep("gradle-java"))
|
|
testRuntimeOnly(intellijPluginDep("gradle-java"))
|
|
}
|
|
|
|
sourceSets {
|
|
"main" { projectDefault() }
|
|
"test" { projectDefault() }
|
|
}
|
|
|
|
projectTest(parallel = true) {
|
|
dependsOn(":dist")
|
|
workingDir = project.rootDir
|
|
val useFirIdeaPlugin = kotlinBuildProperties.useFirIdeaPlugin
|
|
doFirst {
|
|
if (!useFirIdeaPlugin) {
|
|
error("Test task in the module should be executed with -Pidea.fir.plugin=true")
|
|
}
|
|
}
|
|
}
|
|
|
|
testsJar()
|
|
|
|
projectTest(taskName = "ideaFirPerformanceTest") {
|
|
exclude("**/*WholeProjectPerformanceComparisonFirImplTest*")
|
|
val currentOs = org.gradle.internal.os.OperatingSystem.current()
|
|
|
|
if (!currentOs.isWindows) {
|
|
project.providers.systemProperty("ASYNC_PROFILER_HOME").forUseAtConfigurationTime().orNull?.let { asyncProfilerHome ->
|
|
classpath += project.files("$asyncProfilerHome/build/async-profiler.jar")
|
|
}
|
|
}
|
|
|
|
workingDir = project.rootDir
|
|
|
|
jvmArgs?.removeAll { it.startsWith("-Xmx") }
|
|
|
|
maxHeapSize = "3g"
|
|
jvmArgs("-Didea.debug.mode=true")
|
|
jvmArgs("-XX:SoftRefLRUPolicyMSPerMB=50")
|
|
|
|
jvmArgs(
|
|
"-XX:+UseCompressedOops",
|
|
"-Didea.ProcessCanceledException=disabled",
|
|
"-XX:+UseConcMarkSweepGC"
|
|
)
|
|
|
|
project.providers.systemProperty("YOURKIT_PROFILER_HOME").forUseAtConfigurationTime().orNull?.let {yourKitHome ->
|
|
when {
|
|
currentOs.isLinux -> {
|
|
jvmArgs("-agentpath:$yourKitHome/bin/linux-x86-64/libyjpagent.so")
|
|
classpath += files("$yourKitHome/lib/yjp-controller-api-redist.jar")
|
|
}
|
|
currentOs.isMacOsX -> {
|
|
jvmArgs("-agentpath:$yourKitHome/Contents/Resources/bin/mac/libyjpagent.dylib=delay=5000,_socket_timeout_ms=120000,disablealloc,disable_async_sampling,disablenatives")
|
|
classpath += files("$yourKitHome/Contents/Resources/lib/yjp-controller-api-redist.jar")
|
|
}
|
|
}
|
|
}
|
|
|
|
systemProperty("idea.home.path", project.intellijRootDir().canonicalPath)
|
|
|
|
project.providers.gradleProperty("cacheRedirectorEnabled").forUseAtConfigurationTime().orNull?.let {
|
|
systemProperty("kotlin.test.gradle.import.arguments", "-PcacheRedirectorEnabled=$it")
|
|
}
|
|
}
|
|
|
|
projectTest(taskName = "firProjectPerformanceTest") {
|
|
include("**/*WholeProjectPerformanceComparisonFirImplTest*")
|
|
|
|
workingDir = rootDir
|
|
|
|
jvmArgs?.removeAll { it.startsWith("-Xmx") }
|
|
|
|
maxHeapSize = "3g"
|
|
jvmArgs("-DperformanceProjects=${System.getProperty("performanceProjects")}")
|
|
jvmArgs("-Didea.debug.mode=true")
|
|
jvmArgs("-DemptyProfile=${System.getProperty("emptyProfile")}")
|
|
jvmArgs("-XX:SoftRefLRUPolicyMSPerMB=50")
|
|
jvmArgs(
|
|
"-XX:+UseCompressedOops",
|
|
"-XX:+UseConcMarkSweepGC"
|
|
)
|
|
|
|
doFirst {
|
|
systemProperty("idea.home.path", intellijRootDir().canonicalPath)
|
|
project.findProperty("cacheRedirectorEnabled")?.let {
|
|
systemProperty("kotlin.test.gradle.import.arguments", "-PcacheRedirectorEnabled=$it")
|
|
}
|
|
}
|
|
}
|