[performance] enable project performance
(cherry picked from commit 947c3bd92b2ee8d252619cf987427a7e195191cb)
This commit is contained in:
committed by
Stanislav Erokhin
parent
f2524dbb8d
commit
c9e0928038
@@ -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'
|
||||
}
|
||||
Reference in New Issue
Block a user