f624800b84
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
76 lines
2.3 KiB
Groovy
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()]
|
|
}
|
|
|