From d24c56e08da42eef8e766844b991c94bfa262bec Mon Sep 17 00:00:00 2001 From: Vyacheslav Gerasimov Date: Thu, 11 Apr 2019 21:50:53 +0300 Subject: [PATCH] Build: Add jps artifact for kotlin-daemon-client.jar --- .gitignore | 1 + .idea/artifacts/kotlin_daemon_client_jar.xml | 27 -------------- gradle/jps.gradle.kts | 39 +++++++++++++------- 3 files changed, 26 insertions(+), 41 deletions(-) delete mode 100644 .idea/artifacts/kotlin_daemon_client_jar.xml 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)) } }