[performance] enable project performance

(cherry picked from commit 947c3bd92b2ee8d252619cf987427a7e195191cb)
This commit is contained in:
Vasily Levchenko
2021-02-17 16:52:32 +01:00
committed by Stanislav Erokhin
parent f2524dbb8d
commit c9e0928038
29 changed files with 469 additions and 254 deletions
+77 -13
View File
@@ -2,36 +2,96 @@ import org.jetbrains.kotlin.RegressionsReporter
import org.jetbrains.kotlin.RegressionsSummaryReporter
import org.jetbrains.kotlin.BuildRegister
import org.jetbrains.kotlin.MPPTools
import org.jetbrains.kotlin.UtilsKt
import org.jetbrains.kotlin.konan.CompilerVersionKt
buildscript {
ext.rootBuildDirectory = file('..')
ext {
def properties = new java.util.Properties()
properties.load(new java.io.FileReader(project.file("../../gradle.properties")))
properties.each { k, v->
set(k as String, v)
}
}
ext["withoutEmbedabble"] = true
MiscKt.kotlinInit(project, findProperty("cacheRedirectorEnabled")?.toString()?.toBoolean())
ext["bootstrapKotlinRepo"] = BootstrapKt.getBootstrapKotlinRepo(project)
ext["bootstrapKotlinVersion"] = BootstrapKt.getBootstrapKotlinVersion(project)
apply from: "$rootBuildDirectory/gradle/loadRootProperties.gradle"
apply from: "$rootBuildDirectory/gradle/kotlinGradlePlugin.gradle"
repositories {
maven { url 'https://cache-redirector.jetbrains.com/jcenter'}
maven { url 'https://cache-redirector.jetbrains.com/maven-central' }
mavenCentral()
maven { url buildKotlinCompilerRepo }
maven { url kotlinCompilerRepo }
jcenter()
maven { url "https://kotlin.bintray.com/kotlinx" }
}
repositories {
maven{ url = "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-dependencies" }
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-native-build-tools:$konanVersion"
classpath("org.jetbrains.kotlin:kotlin-build-gradle-plugin:0.0.25")
}
}
def globalProperties = new java.util.Properties()
ext.kotlin_root = project.file("../..").absolutePath
project.logger.info("kotlin_root: $kotlin_root")
globalProperties.load(new java.io.FileReader(project.file("$kotlin_root/gradle.properties")))
ext.kotlinNativeVersionInResources = true
//TODO: fix VersionGeneratorKt.kotlinNativeVersionValue(project)
def versionString = VersionGeneratorKt.kotlinNativeVersionResourceFile(project).readLines().first()
def kotlinNativeVersionObject = CompilerVersionKt.parseCompilerVersion(versionString)
subprojects { proj ->
globalProperties.each { k, v->
proj.logger.info("${proj.name}<<<[$k] = $v>>>")
proj.ext.set(k as String, v)
}
MiscKt.kotlinInit(proj, findProperty("cacheRedirectorEnabled")?.toString()?.toBoolean() ?: false)
proj.ext["bootstrapKotlinRepo"] = BootstrapKt.getBootstrapKotlinRepo(proj)
proj.ext["bootstrapKotlinVersion"] = BootstrapKt.getBootstrapKotlinVersion(proj)
proj.ext["kotlin.native.home"] = proj.projectDir.relativePath(UtilsKt.getKotlinNativeDist(project))
proj.ext["konanVersion"] = kotlinNativeVersionObject.toString()
proj.ext["kotlin.native.enabled"] = true
proj.logger.info("${proj.name}<<<[kotlin.native.home] = ${proj.ext["kotlin.native.home"]}")
proj.logger.info("${proj.name}<<<[konanVersion] = ${proj.ext["konanVersion"]}>>>")
proj.ext["buildNumber"] = findProperty("build.number")?.toString() ?: defaultSnapshotVersion
proj.ext["kotlinVersion"] = findProperty("deployVersion")?.toString()?.identity { deploySnapshotStr ->
if (deploySnapshotStr != "default.snapshot") deploySnapshotStr else defaultSnapshotVersion
} ?: proj.ext["buildNumber"]
proj.buildscript.repositories {
jcenter()
maven {
url proj.ext["bootstrapKotlinRepo"]
}
}
proj.repositories {
maven {
url proj.ext["bootstrapKotlinRepo"]
}
}
}
def rootBuildDirectory = projectDir.parentFile
task buildAnalyzer {
dependsOn gradle.includedBuild("benchmarksAnalyzer").task(":${getAnalyzerTargetName()}Binaries")
}
task konanRun {
dependsOn buildAnalyzer
subprojects.each {
dependsOn "${it.path}:konanRun"
}
}
task jvmRun {
dependsOn buildAnalyzer
subprojects.each {
dependsOn "${it.path}:jvmRun"
}
@@ -41,6 +101,7 @@ task clean {
subprojects.each {
dependsOn "${it.path}:clean"
}
dependsOn gradle.includedBuild("benchmarksAnalyzer").task(":clean")
doLast {
delete "${buildDir.absolutePath}"
}
@@ -60,9 +121,6 @@ private static String getAnalyzerTargetName() {
private String findAnalyzerBinary() {
String result = "${projectDir}/../${analyzerToolDirectory}/${getAnalyzerTargetName()}/" +
"${analyzerTool}ReleaseExecutable/${analyzerTool}${MPPTools.getNativeProgramExtension()}"
if (file(result).exists()) return result
else return null
}
// Produce and send slack report.
@@ -247,59 +305,65 @@ subprojects.each {
task teamCityStat(type:Exec) {
def analyzer = findAnalyzerBinary()
if (analyzer != null) {
commandLine "${analyzer}", "-r", "teamcity", "${buildDir.absolutePath}/${nativeJson}"
} else {
println("No analyzer $analyzerTool found in subdirectories of ${rootBuildDirectory}/${analyzerToolDirectory}")
}
commandLine analyzer, "-r", "teamcity", "${buildDir.absolutePath}/${nativeJson}"
}
task cinterop {
dependsOn 'clean'
dependsOn buildAnalyzer
dependsOn 'cinterop:konanRun'
}
task framework {
dependsOn 'clean'
dependsOn buildAnalyzer
dependsOn 'framework:konanRun'
}
task helloworld {
dependsOn 'clean'
dependsOn buildAnalyzer
dependsOn 'helloworld:konanRun'
}
task objcinterop {
dependsOn 'clean'
dependsOn buildAnalyzer
dependsOn 'objcinterop:konanRun'
}
task ring {
dependsOn 'clean'
dependsOn buildAnalyzer
dependsOn 'ring:konanRun'
}
task numerical {
dependsOn 'clean'
dependsOn buildAnalyzer
dependsOn 'numerical:konanRun'
}
task startup {
dependsOn 'clean'
dependsOn buildAnalyzer
dependsOn 'startup:konanRun'
}
task swiftinterop {
dependsOn 'clean'
dependsOn buildAnalyzer
dependsOn 'swiftinterop:konanRun'
}
task videoplayer {
dependsOn 'clean'
dependsOn buildAnalyzer
dependsOn 'videoplayer:konanRun'
}
task KotlinVsSwift {
dependsOn 'clean'
dependsOn buildAnalyzer
dependsOn 'KotlinVsSwift:konanRun'
}