diff --git a/.idea/inspectionProfiles/idea_default.xml b/.idea/inspectionProfiles/idea_default.xml
index 0a29962b929..8f1255ea7a3 100644
--- a/.idea/inspectionProfiles/idea_default.xml
+++ b/.idea/inspectionProfiles/idea_default.xml
@@ -108,9 +108,10 @@
-
-
-
+
+
+
+
diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/runConfigurationsCompat.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/runConfigurationsCompat.kt
index 785b9edb9f3..76daf1f43e5 100644
--- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/runConfigurationsCompat.kt
+++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/runConfigurationsCompat.kt
@@ -7,18 +7,23 @@
package org.jetbrains.kotlin.idea.run
+import com.intellij.execution.configurations.LocatableConfigurationBase
import com.intellij.execution.configurations.ModuleBasedConfiguration
import com.intellij.execution.configurations.RunConfigurationBase
import org.jdom.Element
-// Generalized in 191
-// BUNCH: 191
+// Generalized in 183
+// BUNCH: 183
typealias RunConfigurationBaseAny = RunConfigurationBase
-// Generalized in 191
-// BUNCH: 191
+// Generalized in 183
+// BUNCH: 183
typealias ModuleBasedConfigurationAny = ModuleBasedConfiguration<*>
-// Generalized in 191
-// BUNCH: 191
+// Generalized in 183
+// BUNCH: 183
+typealias LocatableConfigurationBaseAny = LocatableConfigurationBase
+
+// Generalized in 183
+// BUNCH: 183
typealias ModuleBasedConfigurationElement = ModuleBasedConfiguration
\ No newline at end of file
diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/runConfigurationsCompat.kt.191 b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/runConfigurationsCompat.kt.183
similarity index 67%
rename from idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/runConfigurationsCompat.kt.191
rename to idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/runConfigurationsCompat.kt.183
index 9d4ce1d75cb..acdce22db61 100644
--- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/runConfigurationsCompat.kt.191
+++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/run/runConfigurationsCompat.kt.183
@@ -7,18 +7,23 @@
package org.jetbrains.kotlin.idea.run
+import com.intellij.execution.configurations.LocatableConfigurationBase
import com.intellij.execution.configurations.ModuleBasedConfiguration
import com.intellij.execution.configurations.RunConfigurationBase
import org.jdom.Element
-// Generalized in 191
-// BUNCH: 191
+// Generalized in 183
+// BUNCH: 183
typealias RunConfigurationBaseAny = RunConfigurationBase<*>
-// Generalized in 191
-// BUNCH: 191
+// Generalized in 183
+// BUNCH: 183
typealias ModuleBasedConfigurationAny = ModuleBasedConfiguration<*, *>
-// Generalized in 191
-// BUNCH: 191
+// Generalized in 183
+// BUNCH: 183
+typealias LocatableConfigurationBaseAny = LocatableConfigurationBase
+
+// Generalized in 183
+// BUNCH: 183
typealias ModuleBasedConfigurationElement = ModuleBasedConfiguration
\ No newline at end of file
diff --git a/prepare/compiler/build.gradle.kts.183 b/prepare/compiler/build.gradle.kts.183
new file mode 100644
index 00000000000..382ddb9ef64
--- /dev/null
+++ b/prepare/compiler/build.gradle.kts.183
@@ -0,0 +1,155 @@
+import java.io.File
+import proguard.gradle.ProGuardTask
+import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
+import org.gradle.api.artifacts.maven.Conf2ScopeMappingContainer.COMPILE
+import org.gradle.api.file.DuplicatesStrategy
+
+description = "Kotlin Compiler"
+
+plugins {
+ // HACK: java plugin makes idea import dependencies on this project as source (with empty sources however),
+ // this prevents reindexing of kotlin-compiler.jar after build on every change in compiler modules
+ java
+}
+
+// You can run Gradle with "-Pkotlin.build.proguard=true" to enable ProGuard run on kotlin-compiler.jar (on TeamCity, ProGuard always runs)
+val shrink =
+ findProperty("kotlin.build.proguard")?.toString()?.toBoolean()
+ ?: hasProperty("teamcity")
+
+val compilerManifestClassPath = "kotlin-stdlib.jar kotlin-reflect.jar kotlin-script-runtime.jar"
+
+val fatJarContents by configurations.creating
+
+val fatJarContentsStripMetadata by configurations.creating
+val fatJarContentsStripServices by configurations.creating
+val fatSourcesJarContents by configurations.creating
+val fatJar by configurations.creating
+val compilerJar by configurations.creating
+val runtimeJar by configurations.creating
+val compile by configurations // maven plugin writes pom compile scope from compile configuration by default
+val libraries by configurations.creating {
+ extendsFrom(compile)
+}
+
+val default by configurations
+default.extendsFrom(runtimeJar)
+
+val compilerBaseName = name
+
+val outputJar = fileFrom(buildDir, "libs", "$compilerBaseName.jar")
+
+val compilerModules: Array by rootProject.extra
+
+compilerModules.forEach { evaluationDependsOn(it) }
+
+val compiledModulesSources = compilerModules.map {
+ project(it).mainSourceSet.allSource
+}
+
+dependencies {
+ compile(project(":kotlin-stdlib"))
+ compile(project(":kotlin-script-runtime"))
+ compile(project(":kotlin-reflect"))
+
+ libraries(project(":kotlin-annotations-jvm"))
+ libraries(
+ files(
+ firstFromJavaHomeThatExists("jre/lib/rt.jar", "../Classes/classes.jar"),
+ firstFromJavaHomeThatExists("jre/lib/jsse.jar", "../Classes/jsse.jar"),
+ toolsJar()
+ )
+ )
+
+ compilerModules.forEach {
+ fatJarContents(project(it)) { isTransitive = false }
+ }
+
+ compiledModulesSources.forEach {
+ fatSourcesJarContents(it)
+ }
+
+ fatJarContents(project(":core:builtins", configuration = "builtins"))
+ fatJarContents(commonDep("javax.inject"))
+ fatJarContents(commonDep("org.jline", "jline"))
+ fatJarContents(commonDep("org.fusesource.jansi", "jansi"))
+ fatJarContents(protobufFull())
+ fatJarContents(commonDep("com.google.code.findbugs", "jsr305"))
+ fatJarContents(commonDep("io.javaslang", "javaslang"))
+ fatJarContents(commonDep("org.jetbrains.kotlinx", "kotlinx-coroutines-core")) { isTransitive = false }
+
+ fatJarContents(intellijCoreDep()) { includeJars("intellij-core", "java-compatibility-1.0.1") }
+ fatJarContents(intellijDep()) { includeIntellijCoreJarDependencies(project, { !(it.startsWith("jdom") || it.startsWith("log4j")) }) }
+ fatJarContents(intellijDep()) { includeJars("jna-platform", "lz4-1.3.0") }
+ fatJarContentsStripServices(intellijDep("jps-standalone")) { includeJars("jps-model") }
+ fatJarContentsStripMetadata(intellijDep()) { includeJars("oro-2.0.8", "jdom", "log4j" ) }
+}
+
+noDefaultJar()
+
+val packCompiler by task {
+ configurations = listOf(fatJar)
+ setDuplicatesStrategy(DuplicatesStrategy.EXCLUDE)
+ destinationDir = File(buildDir, "libs")
+
+ setupPublicJar(compilerBaseName, "before-proguard")
+
+ from(fatJarContents)
+
+ dependsOn(fatJarContentsStripServices)
+ from {
+ fatJarContentsStripServices.files.map {
+ zipTree(it).matching { exclude("META-INF/services/**") }
+ }
+ }
+
+ dependsOn(fatJarContentsStripMetadata)
+ from {
+ fatJarContentsStripMetadata.files.map {
+ zipTree(it).matching { exclude("META-INF/jb/**", "META-INF/LICENSE") }
+ }
+ }
+
+ manifest.attributes["Class-Path"] = compilerManifestClassPath
+ manifest.attributes["Main-Class"] = "org.jetbrains.kotlin.cli.jvm.K2JVMCompiler"
+}
+
+val proguard by task {
+ dependsOn(packCompiler)
+ configuration("$rootDir/compiler/compiler.pro")
+
+ val outputJar = fileFrom(buildDir, "libs", "$compilerBaseName-after-proguard.jar")
+
+ inputs.files(packCompiler.outputs.files.singleFile)
+ outputs.file(outputJar)
+
+ // TODO: remove after dropping compatibility with ant build
+ doFirst {
+ System.setProperty("kotlin-compiler-jar-before-shrink", packCompiler.outputs.files.singleFile.canonicalPath)
+ System.setProperty("kotlin-compiler-jar", outputJar.canonicalPath)
+ }
+
+ libraryjars(mapOf("filter" to "!META-INF/versions/**"), libraries)
+
+ printconfiguration("$buildDir/compiler.pro.dump")
+}
+
+val pack = if (shrink) proguard else packCompiler
+
+dist(
+ targetName = "$compilerBaseName.jar",
+ fromTask = pack
+)
+
+runtimeJarArtifactBy(pack, pack.outputs.files.singleFile) {
+ name = compilerBaseName
+ classifier = ""
+}
+
+sourcesJar {
+ from(fatSourcesJarContents)
+}
+
+javadocJar()
+
+publish()
diff --git a/ultimate/src/org/jetbrains/kotlin/idea/nodejs/protractor/KotlinProtractorRunConfiguration.kt b/ultimate/src/org/jetbrains/kotlin/idea/nodejs/protractor/KotlinProtractorRunConfiguration.kt
index 6fd3bb21603..7b39214f9c2 100644
--- a/ultimate/src/org/jetbrains/kotlin/idea/nodejs/protractor/KotlinProtractorRunConfiguration.kt
+++ b/ultimate/src/org/jetbrains/kotlin/idea/nodejs/protractor/KotlinProtractorRunConfiguration.kt
@@ -27,6 +27,7 @@ import com.intellij.javascript.protractor.ProtractorUtil
import com.intellij.openapi.project.Project
import com.intellij.util.PathUtil
import org.jdom.Element
+import org.jetbrains.kotlin.idea.run.LocatableConfigurationBaseAny
import java.io.File
// Based on com.intellij.javascript.protractor.ProtractorRunConfiguration
@@ -34,7 +35,7 @@ class KotlinProtractorRunConfiguration(
project: Project,
factory: ConfigurationFactory,
name: String
-) : LocatableConfigurationBase(project, factory, name) {
+) : LocatableConfigurationBaseAny(project, factory, name) {
var runSettings = KotlinProtractorRunSettings()
val protractorPackage: NodePackage
diff --git a/ultimate/src/org/jetbrains/kotlin/idea/nodejs/protractor/KotlinProtractorRunConfigurationProducer.kt b/ultimate/src/org/jetbrains/kotlin/idea/nodejs/protractor/KotlinProtractorRunConfigurationProducer.kt
index 6f495553041..481c54057a7 100644
--- a/ultimate/src/org/jetbrains/kotlin/idea/nodejs/protractor/KotlinProtractorRunConfigurationProducer.kt
+++ b/ultimate/src/org/jetbrains/kotlin/idea/nodejs/protractor/KotlinProtractorRunConfigurationProducer.kt
@@ -72,7 +72,7 @@ class KotlinProtractorRunConfigurationProducer :
testFilePath = configData.jsOutputFilePath,
envData = configData.module.getNodeJsEnvironmentVars(true)
)
- configuration.name = configuration.suggestedName()
+ configuration.name = configuration.suggestedName() ?: "Unknown"
configuration.addBuildTask()
return true
}
diff --git a/versions.gradle.kts.183 b/versions.gradle.kts.183
index 9066237344a..bcff9745c9e 100644
--- a/versions.gradle.kts.183
+++ b/versions.gradle.kts.183
@@ -1,4 +1,4 @@
-extra["versions.intellijSdk"] = "183.2153.8"
+extra["versions.intellijSdk"] = "183.3975.18"
extra["versions.androidBuildTools"] = "r23.0.1"
extra["versions.idea.NodeJS"] = "181.3494.12"
//extra["versions.androidStudioRelease"] = "3.1.0.5"
@@ -40,6 +40,8 @@ when (platform) {
extra["versions.jar.gson"] = "2.8.5"
extra["versions.jar.oro"] = "2.0.8"
extra["versions.jar.picocontainer"] = "1.2"
+ extra["versions.jar.asm-all"] = "7.0-beta"
+
for (jar in gradleJars) {
extra["versions.jar.$jar"] = "4.5.1"
}