JPS build: add dependencies to stdlib

This commit is contained in:
Sergey Rostov
2019-01-21 20:50:02 +03:00
parent e8e2a5b047
commit efa3201a68
4 changed files with 79 additions and 2 deletions

2
.gitignore vendored
View File

@@ -38,5 +38,5 @@ build/
.idea/compiler.xml
.idea/inspectionProfiles/profiles_settings.xml
.idea/.name
.idea/artifacts/dist_auto_reference_dont_use.xml
.idea/artifacts/dist_auto_*
kotlin-ultimate/

View File

@@ -80,6 +80,8 @@ val appcodeKotlinPlugin by configurations.creating
val clionKotlinPlugin by configurations.creating
val includeCidr by extra(project.getBooleanProperty("cidrPluginsEnabled") ?: false)
val isJpsBuildEnabled = findProperty("jpsBuild")?.toString() == "true"
val jpsBootstrap by configurations.creating
dependencies {
if (includeCidr) {
@@ -836,7 +838,6 @@ fun org.jetbrains.gradle.ext.JUnit.configureForKotlin() {
workingDirectory = rootDir.toString()
}
val isJpsBuildEnabled = findProperty("jpsBuild")?.toString() == "true"
if (isJpsBuildEnabled && System.getProperty("idea.active") != null) {
allprojects {
apply(mapOf("plugin" to "idea"))

View File

@@ -0,0 +1,73 @@
import org.gradle.kotlin.dsl.*
import org.jetbrains.gradle.ext.TopLevelArtifact
import java.util.regex.Pattern
description = "Stdlib configuration for JPS build (to be interpreted during IDEA project import)"
repositories {
maven(bootstrapKotlinRepo!!.replace("artifacts/content/maven/", "artifacts/content/internal/repo"))
}
val distLib by configurations.creating
val distCommon by configurations.creating
val distRoot by configurations.creating
val builtins by configurations.creating
dependencies {
distRoot("org.jetbrains.kotlin:kotlin-stdlib-minimal-for-test:$bootstrapKotlinVersion")
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")
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")
distCommon("org.jetbrains.kotlin:kotlin-stdlib-common:$bootstrapKotlinVersion")
distCommon("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)
rename("-${Pattern.quote(bootstrapKotlinVersion)}", "")
}
task<Copy>("distLib") {
destinationDir = distLibDir
dependsOn(distLib)
from(distLib)
rename("-${Pattern.quote(bootstrapKotlinVersion)}", "")
}

View File

@@ -221,6 +221,9 @@ def isJpsBuild = hasProperty("jpsBuild") && jpsBuild == 'true'
def includeStdlib = !hasProperty("useBootstrapStdlib") || useBootstrapStdlib == 'false'
if (isJpsBuild) {
includeStdlib = false
include ":kotlin-stdlib:jps-build"
project(":kotlin-stdlib:jps-build").projectDir = "$rootDir/libraries/stdlib/jps-build" as File
} else {
// modules that we are currently cannot compile with jps
include ":kotlin-idl2k"