From 72be81ba46ec55af323b6bda4a890d2c0715d0d5 Mon Sep 17 00:00:00 2001 From: Vyacheslav Gerasimov Date: Wed, 15 May 2019 16:43:11 +0300 Subject: [PATCH] Build: Add JPS artifact for dist --- .gitignore | 1 + .idea/artifacts/dist.xml | 27 --------- gradle/jps.gradle.kts | 59 +++++++++++++++++- libraries/stdlib/jps-build/build.gradle.kts | 67 ++++++++------------- 4 files changed, 83 insertions(+), 71 deletions(-) delete mode 100644 .idea/artifacts/dist.xml diff --git a/.gitignore b/.gitignore index 40e7d531025..7082772f2b0 100644 --- a/.gitignore +++ b/.gitignore @@ -36,6 +36,7 @@ build/ .idea/inspectionProfiles/profiles_settings.xml .idea/.name .idea/artifacts/dist_auto_* +.idea/artifacts/dist.xml .idea/artifacts/ideaPlugin.xml .idea/artifacts/kotlin_plugin_jar.xml .idea/artifacts/kotlin_jps_plugin_jar.xml diff --git a/.idea/artifacts/dist.xml b/.idea/artifacts/dist.xml deleted file mode 100644 index 3653034c33a..00000000000 --- a/.idea/artifacts/dist.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - $PROJECT_DIR$/dist - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/gradle/jps.gradle.kts b/gradle/jps.gradle.kts index f76a86fec4d..7019c8e4206 100644 --- a/gradle/jps.gradle.kts +++ b/gradle/jps.gradle.kts @@ -74,6 +74,8 @@ if (kotlinBuildProperties.isInJpsBuildIdeaSync) { kotlinJpsPluginJar() ideaPlugin() + + dist() } compiler { @@ -210,6 +212,57 @@ fun NamedDomainObjectContainer.kotlinJpsPluginJar() { } } +fun NamedDomainObjectContainer.dist() { + val distLibrariesProject = project(":kotlin-stdlib:jps-build") + val stdlibMinimal by distLibrariesProject.configurations + val commonStdlib by distLibrariesProject.configurations + val commonStdlibSources by distLibrariesProject.configurations + val stdlibJS by distLibrariesProject.configurations + val stdlibSources by distLibrariesProject.configurations + + create("dist") { + file("$rootDir/build/build.txt") + + // Use output-file-name when fixed https://github.com/JetBrains/gradle-idea-ext-plugin/issues/63 + archive("kotlin-stdlib-minimal-for-test.jar") { + extractedDirectory(stdlibMinimal.singleFile) + } + + directory("artifacts") { + directory("ideaPlugin") { + artifact("ideaPlugin") + } + } + + directory("common") { + // Use output-file-name when fixed https://github.com/JetBrains/gradle-idea-ext-plugin/issues/63 + archive("kotlin-stdlib-common.jar") { + extractedDirectory(commonStdlib.singleFile) + } + + // Use output-file-name when fixed https://github.com/JetBrains/gradle-idea-ext-plugin/issues/63 + archive("kotlin-stdlib-common-sources.jar") { + extractedDirectory(commonStdlibSources.singleFile) + } + } + + directory("js") { + extractedDirectory(stdlibJS.singleFile) + } + + directory("kotlinc") { + artifact("kotlinc") + } + + directory("maven") { + // Use output-file-name when fixed https://github.com/JetBrains/gradle-idea-ext-plugin/issues/63 + archive("kotlin-stdlib-sources.jar") { + extractedDirectory(stdlibSources.singleFile) + } + } + } +} + fun NamedDomainObjectContainer.ideaPlugin() { val ideaPluginProject = project(":prepare:idea-plugin") (ideaPluginProject as ProjectInternal).evaluate() @@ -225,10 +278,10 @@ fun NamedDomainObjectContainer.ideaPlugin() { directory("lib") { artifact("kotlin-plugin.jar") - directoryFromConfiguration(libraries) + jarsFromConfiguration(libraries) directory("jps") { - directoryFromConfiguration(jpsPlugin) + jarsFromConfiguration(jpsPlugin) } } } @@ -276,7 +329,7 @@ fun RecursiveArtifact.jarContentsFromEmbeddedConfiguration(project: Project) { } } -fun RecursiveArtifact.directoryFromConfiguration(configuration: Configuration) { +fun RecursiveArtifact.jarsFromConfiguration(configuration: Configuration) { val resolvedArtifacts = configuration .resolvedConfiguration .resolvedArtifacts diff --git a/libraries/stdlib/jps-build/build.gradle.kts b/libraries/stdlib/jps-build/build.gradle.kts index a796e4a7a5e..ba45ead6732 100644 --- a/libraries/stdlib/jps-build/build.gradle.kts +++ b/libraries/stdlib/jps-build/build.gradle.kts @@ -4,66 +4,51 @@ import java.util.regex.Pattern description = "Stdlib configuration for JPS build (to be interpreted during IDEA project import)" -val distLib by configurations.creating -val distCommon by configurations.creating -val distRoot by configurations.creating +val stdlibMinimal by configurations.creating +val stdlibJS by configurations.creating +val stdlibSources by configurations.creating +val compilerLib by configurations.creating + +val commonStdlib by configurations.creating +val commonStdlibSources by configurations.creating + val builtins by configurations.creating dependencies { - distRoot("org.jetbrains.kotlin:kotlin-stdlib-minimal-for-test:$bootstrapKotlinVersion") + stdlibMinimal("org.jetbrains.kotlin:kotlin-stdlib-minimal-for-test:$bootstrapKotlinVersion") + stdlibJS("org.jetbrains.kotlin:kotlin-stdlib-js:$bootstrapKotlinVersion") { isTransitive = false } + stdlibSources("org.jetbrains.kotlin:kotlin-stdlib:$bootstrapKotlinVersion:sources") { isTransitive = false } + builtins("org.jetbrains.kotlin:builtins:$bootstrapKotlinVersion") - distLib("org.jetbrains.kotlin:kotlin-stdlib:$bootstrapKotlinVersion") - distLib("org.jetbrains.kotlin:kotlin-stdlib-js:$bootstrapKotlinVersion") - distLib("org.jetbrains.kotlin:kotlin-stdlib-jdk7:$bootstrapKotlinVersion") - distLib("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$bootstrapKotlinVersion") + compilerLib("org.jetbrains.kotlin:kotlin-stdlib:$bootstrapKotlinVersion") + compilerLib("org.jetbrains.kotlin:kotlin-stdlib-js:$bootstrapKotlinVersion") + compilerLib("org.jetbrains.kotlin:kotlin-stdlib-jdk7:$bootstrapKotlinVersion") + compilerLib("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$bootstrapKotlinVersion") - distLib("org.jetbrains.kotlin:kotlin-stdlib:$bootstrapKotlinVersion:sources") - distLib("org.jetbrains.kotlin:kotlin-stdlib-js:$bootstrapKotlinVersion:sources") - distLib("org.jetbrains.kotlin:kotlin-stdlib-jdk7:$bootstrapKotlinVersion:sources") - distLib("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$bootstrapKotlinVersion:sources") + compilerLib("org.jetbrains.kotlin:kotlin-stdlib:$bootstrapKotlinVersion:sources") + compilerLib("org.jetbrains.kotlin:kotlin-stdlib-js:$bootstrapKotlinVersion:sources") + compilerLib("org.jetbrains.kotlin:kotlin-stdlib-jdk7:$bootstrapKotlinVersion:sources") + compilerLib("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$bootstrapKotlinVersion:sources") - distCommon("org.jetbrains.kotlin:kotlin-stdlib-common:$bootstrapKotlinVersion") - distCommon("org.jetbrains.kotlin:kotlin-stdlib-common:$bootstrapKotlinVersion:sources") + commonStdlib("org.jetbrains.kotlin:kotlin-stdlib-common:$bootstrapKotlinVersion") + commonStdlibSources("org.jetbrains.kotlin:kotlin-stdlib-common:$bootstrapKotlinVersion:sources") } val distDir: String by rootProject.extra val distLibDir: File by rootProject.extra -fun TopLevelArtifact.addFromConfiguration(configuration: Configuration) { - configuration.resolve().forEach { - file(it) - } -} - -afterEvaluate { - rootProject.idea { - project { - settings { - ideArtifacts { - create("dist_auto_stdlib_reference_dont_use") { - addFromConfiguration(distRoot) - addFromConfiguration(distCommon) - addFromConfiguration(distLib) - addFromConfiguration(builtins) - } - } - } - } - } -} - task("distRoot") { destinationDir = File(distDir) - dependsOn(distRoot) - from(distRoot) + dependsOn(stdlibMinimal) + from(stdlibMinimal) rename("-${Pattern.quote(bootstrapKotlinVersion)}", "") } task("distLib") { destinationDir = distLibDir - dependsOn(distLib) - from(distLib) + dependsOn(compilerLib) + from(compilerLib) rename("-${Pattern.quote(bootstrapKotlinVersion)}", "") } \ No newline at end of file