diff --git a/.gitignore b/.gitignore
index 941a076d52a..3fe6a16c0ca 100644
--- a/.gitignore
+++ b/.gitignore
@@ -38,6 +38,7 @@ build/
.idea/artifacts/dist_auto_*
.idea/artifacts/ideaPlugin.xml
.idea/artifacts/kotlin_jps_plugin_jar.xml
+.idea/artifacts/kotlin_daemon_client_jar.xml
kotlin-ultimate/
node_modules/
.rpt2_cache/
diff --git a/.idea/artifacts/kotlin_daemon_client_jar.xml b/.idea/artifacts/kotlin_daemon_client_jar.xml
deleted file mode 100644
index 899ff3e378e..00000000000
--- a/.idea/artifacts/kotlin_daemon_client_jar.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
- $PROJECT_DIR$/out/artifacts/kotlin_daemon_client_jar
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/gradle/jps.gradle.kts b/gradle/jps.gradle.kts
index 318124873c4..53c50466fa0 100644
--- a/gradle/jps.gradle.kts
+++ b/gradle/jps.gradle.kts
@@ -59,6 +59,8 @@ if (kotlinBuildProperties.isInJpsBuildIdeaSync) {
ideArtifacts {
generateIdeArtifacts(rootProject, this@ideArtifacts)
+ kotlinDaemonClientJar()
+
kotlinJpsPluginJar()
ideaPlugin()
@@ -163,19 +165,13 @@ if (kotlinBuildProperties.isInJpsBuildIdeaSync) {
}
}
+fun NamedDomainObjectContainer.kotlinDaemonClientJar() =
+ jarFromProject(project(":kotlin-daemon-client"))
+
fun NamedDomainObjectContainer.kotlinJpsPluginJar() {
val jpsPluginProject = project(":kotlin-jps-plugin")
-
- create("kotlin-jps-plugin.jar") {
- archive("kotlin-jps-plugin.jar") {
- directory("META-INF") {
- file("${jpsPluginProject.buildDir}/tmp/jar/MANIFEST.MF")
- }
-
- jarFromEmbedded(jpsPluginProject)
-
- file("${jpsPluginProject.rootDir}/resources/kotlinManifest.properties")
- }
+ jarFromProject(jpsPluginProject) {
+ file("${jpsPluginProject.rootDir}/resources/kotlinManifest.properties")
}
}
@@ -199,7 +195,7 @@ fun NamedDomainObjectContainer.ideaPlugin() {
file("${ideaPluginProject.rootDir}/resources/kotlinManifest.properties")
- jarFromEmbedded(ideaPluginProject)
+ jarContentsFromEmbeddedConfiguration(ideaPluginProject)
}
directoryFromConfiguration(libraries)
@@ -212,6 +208,21 @@ fun NamedDomainObjectContainer.ideaPlugin() {
}
}
+fun NamedDomainObjectContainer.jarFromProject(project: Project, configureAction: RecursiveArtifact.() -> Unit = {}) {
+ val jarName = project.name + ".jar"
+ create(jarName) {
+ archive(jarName) {
+ directory("META-INF") {
+ file("${project.buildDir}/tmp/jar/MANIFEST.MF")
+ }
+
+ jarContentsFromEmbeddedConfiguration(project)
+
+ configureAction()
+ }
+ }
+}
+
val jarArtifactProjects = listOf(
"kotlin-compiler-client-embeddable",
"kotlin-compiler",
@@ -224,7 +235,7 @@ val jarArtifactProjects = listOf(
fun moduleName(projectPath: String) = rootProject.name + projectPath.replace(':', '.') + ".main"
-fun RecursiveArtifact.jarFromEmbedded(project: Project) {
+fun RecursiveArtifact.jarContentsFromEmbeddedConfiguration(project: Project) {
val embedded = project.configurations.findByName("embedded") ?: return
val resolvedArtifacts = embedded
@@ -240,7 +251,7 @@ fun RecursiveArtifact.jarFromEmbedded(project: Project) {
.filterIsInstance()
.forEach {
moduleOutput(moduleName(it.projectPath))
- jarFromEmbedded(project(it.projectPath))
+ jarContentsFromEmbeddedConfiguration(project(it.projectPath))
}
}