Files
kotlin-fork/kotlin-native/performance/gradle/compileBenchmark.gradle
T
Stanislav Erokhin f624800b84 Move everything under kotlin-native folder
I was forced to manually do update the following files, because otherwise
they would be ignored according .gitignore settings. Probably they
should be deleted from repo.

Interop/.idea/compiler.xml
Interop/.idea/gradle.xml
Interop/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_runtime_1_0_3.xml
Interop/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_0_3.xml
Interop/.idea/modules.xml
Interop/.idea/modules/Indexer/Indexer.iml
Interop/.idea/modules/Runtime/Runtime.iml
Interop/.idea/modules/StubGenerator/StubGenerator.iml
backend.native/backend.native.iml
backend.native/bc.frontend/bc.frontend.iml
backend.native/cli.bc/cli.bc.iml
backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2Native.kt
backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2NativeCompilerArguments.kt
backend.native/tests/link/lib/foo.kt
backend.native/tests/link/lib/foo2.kt
backend.native/tests/teamcity-test.property
2020-10-27 21:00:28 +03:00

76 lines
2.3 KiB
Groovy

import org.jetbrains.kotlin.MPPTools
def exitCodes = [:]
MPPTools.addTimeListener(project)
task konanRun {
dependsOn "configureBuild"
(1..project.ext.repeatNumber).each { number ->
project.ext.buildSteps.keySet().each {
dependsOn "$it$number"
}
}
}
task configureBuild {
doLast {
mkdir "${buildDir.absolutePath}"
}
}
(1..project.ext.repeatNumber).each { number ->
project.ext.buildSteps.each { taskName, command ->
tasks.create(name: "$taskName$number", type: Exec) {
commandLine command
ignoreExitValue true
doLast {
exitCodes[name] = execResult.exitValue
}
}
}
}
task clean {
doLast {
delete "${buildDir.absolutePath}"
}
}
task konanJsonReport {
doLast {
def nativeCompileTime = MPPTools.getCompileBenchmarkTime(project.ext.applicationName, project.ext.buildSteps.keySet(),
project.ext.repeatNumber, exitCodes)
def nativeExecutable = "${buildDir.absolutePath}/program${MPPTools.getNativeProgramExtension()}"
def properties = getCommonProperties() + ['type': 'native',
'compilerVersion': "${konanVersion}".toString(),
'benchmarks': "[]",
'compileTime': nativeCompileTime,
'codeSize': MPPTools.getCodeSizeBenchmark(project.ext.applicationName, nativeExecutable) ]
def output = MPPTools.createJsonReport(properties)
new File("${buildDir.absolutePath}/${nativeJson}").write(output)
}
}
task jvmRun {
println("JVM run isn't supported")
}
task jvmJsonReport {
doLast {
println("JVM run isn't supported")
}
}
jvmRun.finalizedBy jvmJsonReport
konanRun.finalizedBy konanJsonReport
private def getCommonProperties() {
return ['cpu': System.getProperty("os.arch"),
'os': System.getProperty("os.name"), // OperatingSystem.current().getName()
'jdkVersion': System.getProperty("java.version"), // org.gradle.internal.jvm.Jvm.current().javaVersion
'jdkVendor': System.getProperty("java.vendor"),
'kotlinVersion': "${kotlinVersion}".toString()]
}