Build: Add JPS artifact for dist
This commit is contained in:
@@ -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
|
||||
|
||||
Generated
-27
@@ -1,27 +0,0 @@
|
||||
<component name="ArtifactManager">
|
||||
<artifact build-on-make="true" name="dist">
|
||||
<output-path>$PROJECT_DIR$/dist</output-path>
|
||||
<root id="root">
|
||||
<element id="directory" name="artifacts">
|
||||
<element id="directory" name="ideaPlugin">
|
||||
<element id="artifact" artifact-name="ideaPlugin" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="file-copy" path="$PROJECT_DIR$/build/build.txt" />
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-minimal-for-test/1.3.50-dev-526/7c531c6c6db03b6ebf0ff0e15027bb6aee5d2452/kotlin-stdlib-minimal-for-test-1.3.50-dev-526.jar" output-file-name="kotlin-stdlib-minimal-for-test.jar" />
|
||||
<element id="directory" name="common">
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.3.50-dev-526/7a06077a97c805bc4d99aaa17c8e8accf86bfe7c/kotlin-stdlib-common-1.3.50-dev-526.jar" output-file-name="kotlin-stdlib-common.jar" />
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.3.50-dev-526/784cfd305e170c525b1a6987584dd8bebc4e0e6a/kotlin-stdlib-common-1.3.50-dev-526-sources.jar" output-file-name="kotlin-stdlib-common-sources.jar" />
|
||||
</element>
|
||||
<element id="directory" name="js">
|
||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-js/1.3.50-dev-526/8a798b744fdbd46a7d93814f0f0b97c664c064d2/kotlin-stdlib-js-1.3.50-dev-526.jar" path-in-jar="/" />
|
||||
</element>
|
||||
<element id="directory" name="maven">
|
||||
<element id="file-copy" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.50-dev-526/21e04af851994238d364653c103df336bf45fd4d/kotlin-stdlib-1.3.50-dev-526-sources.jar" output-file-name="kotlin-stdlib-sources.jar" />
|
||||
</element>
|
||||
<element id="directory" name="kotlinc">
|
||||
<element id="artifact" artifact-name="kotlinc" />
|
||||
</element>
|
||||
</root>
|
||||
</artifact>
|
||||
</component>
|
||||
+56
-3
@@ -74,6 +74,8 @@ if (kotlinBuildProperties.isInJpsBuildIdeaSync) {
|
||||
kotlinJpsPluginJar()
|
||||
|
||||
ideaPlugin()
|
||||
|
||||
dist()
|
||||
}
|
||||
|
||||
compiler {
|
||||
@@ -210,6 +212,57 @@ fun NamedDomainObjectContainer<TopLevelArtifact>.kotlinJpsPluginJar() {
|
||||
}
|
||||
}
|
||||
|
||||
fun NamedDomainObjectContainer<TopLevelArtifact>.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<TopLevelArtifact>.ideaPlugin() {
|
||||
val ideaPluginProject = project(":prepare:idea-plugin")
|
||||
(ideaPluginProject as ProjectInternal).evaluate()
|
||||
@@ -225,10 +278,10 @@ fun NamedDomainObjectContainer<TopLevelArtifact>.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
|
||||
|
||||
@@ -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<Copy>("distRoot") {
|
||||
destinationDir = File(distDir)
|
||||
dependsOn(distRoot)
|
||||
from(distRoot)
|
||||
dependsOn(stdlibMinimal)
|
||||
from(stdlibMinimal)
|
||||
rename("-${Pattern.quote(bootstrapKotlinVersion)}", "")
|
||||
}
|
||||
|
||||
task<Copy>("distLib") {
|
||||
destinationDir = distLibDir
|
||||
dependsOn(distLib)
|
||||
from(distLib)
|
||||
dependsOn(compilerLib)
|
||||
from(compilerLib)
|
||||
|
||||
rename("-${Pattern.quote(bootstrapKotlinVersion)}", "")
|
||||
}
|
||||
Reference in New Issue
Block a user