99 lines
2.9 KiB
Groovy
99 lines
2.9 KiB
Groovy
apply plugin: 'base'
|
|
|
|
final boolean isTeamcityBuild = project.hasProperty("teamcity.version")
|
|
|
|
// kotlin/libraries/tools/kotlin-stdlib-docs -> kotlin
|
|
final String kotlinRootDir = rootProject.file("../../../").absolutePath.replace('\\', '/')
|
|
final String kotlinLibsDir = "$buildDir/libs"
|
|
|
|
final String githubRevision = isTeamcityBuild ? project.property("githubRevision") : "master"
|
|
final String kotlinVersion = isTeamcityBuild ? project.property("deployVersion") : "1.9.255-SNAPSHOT"
|
|
final String repo = isTeamcityBuild ? project.property("kotlinLibsRepo") : "$kotlinRootDir/build/repo"
|
|
|
|
println("# Extracting info:")
|
|
println(" isTeamcityBuild: $isTeamcityBuild")
|
|
println(" githubRevision: $githubRevision")
|
|
println(" kotlinVersion: $kotlinVersion")
|
|
println(" repo: $repo")
|
|
|
|
repositories {
|
|
maven { url = repo }
|
|
mavenCentral()
|
|
}
|
|
|
|
final List<String> modules = [
|
|
"kotlin-stdlib",
|
|
"kotlin-stdlib-common",
|
|
"kotlin-stdlib-jdk7",
|
|
"kotlin-stdlib-jdk8",
|
|
"kotlin-stdlib-js",
|
|
"kotlin-test",
|
|
"kotlin-test-js",
|
|
"kotlin-test-junit5",
|
|
"kotlin-test-junit",
|
|
"kotlin-test-testng",
|
|
"kotlin-test-common",
|
|
]
|
|
|
|
|
|
task extractLibs() { }
|
|
|
|
|
|
modules.forEach { module ->
|
|
final String lib = "kotlin_lib_$module"
|
|
|
|
final Configuration lib_src = configurations.create(lib)
|
|
|
|
if (module == "kotlin-test-js") {
|
|
lib_src.attributes {attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage, "kotlin-runtime")) }
|
|
}
|
|
|
|
dependencies {
|
|
"$lib"(group: 'org.jetbrains.kotlin', name: module, version: kotlinVersion)
|
|
}
|
|
|
|
final Task libsTask = tasks.create("extract_lib_$module", Sync) {
|
|
dependsOn lib_src
|
|
|
|
from { lib_src }
|
|
into "$kotlinLibsDir/$module"
|
|
}
|
|
|
|
extractLibs.dependsOn libsTask
|
|
}
|
|
|
|
project.extensions.github_revision = githubRevision
|
|
project.extensions.kotlin_root = kotlinRootDir
|
|
project.extensions.kotlin_libs = kotlinLibsDir
|
|
|
|
// TODO: Eliminate this workaround when KT-52977 gets fixed in the Kotlin compiler used in Dokka
|
|
final List<File> enumsToComment = [
|
|
"$kotlinRootDir/libraries/stdlib/jdk7/src/kotlin/io/path/PathWalkOption.kt",
|
|
"$kotlinRootDir/libraries/stdlib/jdk7/src/kotlin/io/path/CopyActionResult.kt",
|
|
"$kotlinRootDir/libraries/stdlib/jdk7/src/kotlin/io/path/OnErrorResult.kt",
|
|
].collect { new File(it) }
|
|
|
|
project.extensions.commentOutSinceKotlinForNewEnums = {
|
|
for (file in enumsToComment) {
|
|
final List<String> lines = file.readLines()
|
|
for (def i = 0; i < lines.size(); i++) {
|
|
if (lines[i].startsWith("@SinceKotlin")) {
|
|
lines[i] = "//" + lines[i]
|
|
}
|
|
}
|
|
file.write(String.join("\n", lines))
|
|
}
|
|
}
|
|
|
|
project.extensions.uncommentSinceKotlinForNewEnums = {
|
|
for (file in enumsToComment) {
|
|
final List<String> lines = file.readLines()
|
|
for (def i = 0; i < lines.size(); i++) {
|
|
if (lines[i].startsWith("//@SinceKotlin")) {
|
|
lines[i] = lines[i].substring(2)
|
|
}
|
|
}
|
|
file.write(String.join("\n", lines))
|
|
}
|
|
}
|