Perf: Don't include kliopt sources into benchmarks
This commit is contained in:
committed by
Ilya Matveev
parent
53d96aba4c
commit
48a75e9a07
@@ -1,9 +1,12 @@
|
||||
package org.jetbrains.kotlin.benchmark
|
||||
|
||||
import groovy.lang.Closure
|
||||
import org.gradle.api.NamedDomainObjectContainer
|
||||
import org.gradle.api.Plugin
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.artifacts.Dependency
|
||||
import org.gradle.jvm.tasks.Jar
|
||||
import org.gradle.util.ConfigureUtil
|
||||
import org.jetbrains.kotlin.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
|
||||
@@ -77,6 +80,37 @@ open class BenchmarkExtension @Inject constructor(val project: Project) {
|
||||
var mingwSrcDirs: Collection<Any> = emptyList()
|
||||
var posixSrcDirs: Collection<Any> = emptyList()
|
||||
var linkerOpts: Collection<String> = emptyList()
|
||||
|
||||
val dependencies: BenchmarkDependencies = BenchmarkDependencies()
|
||||
|
||||
fun dependencies(action: BenchmarkDependencies.() -> Unit) =
|
||||
dependencies.action()
|
||||
|
||||
fun dependencies(action: Closure<*>) {
|
||||
ConfigureUtil.configure(action, dependencies)
|
||||
}
|
||||
|
||||
inner class BenchmarkDependencies {
|
||||
private val sourceSets: NamedDomainObjectContainer<KotlinSourceSet>
|
||||
get() = project.kotlin.sourceSets
|
||||
|
||||
fun project(path: String): Dependency = project.dependencies.project(mapOf("path" to path))
|
||||
|
||||
fun project(path: String, configuration: String): Dependency =
|
||||
project.dependencies.project(mapOf("path" to path, "configuration" to configuration))
|
||||
|
||||
fun common(notation: Any) = sourceSets.commonMain.dependencies {
|
||||
implementation(notation)
|
||||
}
|
||||
|
||||
fun jvm(notation: Any) = sourceSets.jvmMain.dependencies {
|
||||
implementation(notation)
|
||||
}
|
||||
|
||||
fun native(notation: Any) = sourceSets.nativeMain.dependencies {
|
||||
implementation(notation)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -101,6 +135,11 @@ open class BenchmarkingPlugin: Plugin<Project> {
|
||||
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinStdlibVersion")
|
||||
}
|
||||
|
||||
project.configurations.getByName(nativeMain.implementationConfigurationName).apply {
|
||||
// Exclude dependencies already included into K/N distribution (aka endorsed libraries).
|
||||
exclude(mapOf("module" to "kliopt"))
|
||||
}
|
||||
|
||||
repositories.maven {
|
||||
it.setUrl(kotlinStdlibRepo)
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@ benchmark {
|
||||
nativeSrcDirs = listOf("src/main/kotlin-native", "../shared/src/main/kotlin-native/common")
|
||||
mingwSrcDirs = listOf("src/main/kotlin-native", "../shared/src/main/kotlin-native/mingw")
|
||||
posixSrcDirs = listOf("src/main/kotlin-native", "../shared/src/main/kotlin-native/posix")
|
||||
|
||||
dependencies.common(project(":endorsedLibraries:kliopt"))
|
||||
}
|
||||
|
||||
val native = kotlin.targets.getByName("native") as KotlinNativeTarget
|
||||
|
||||
@@ -37,8 +37,6 @@ kotlin {
|
||||
}
|
||||
kotlin.srcDir "$toolsPath/benchmarks/shared/src"
|
||||
kotlin.srcDir "$toolsPath/benchmarksAnalyzer/src/main/kotlin"
|
||||
kotlin.srcDir "$rootProject.projectDir/endorsedLibraries/kliopt/src/main/kotlin"
|
||||
kotlin.srcDir "$rootProject.projectDir/endorsedLibraries/kliopt/src/main/kotlin-native"
|
||||
kotlin.srcDir "$toolsPath/benchmarksAnalyzer/src/main/kotlin-native"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,12 +14,14 @@ plugins {
|
||||
|
||||
benchmark {
|
||||
applicationName = "Numerical"
|
||||
commonSrcDirs = listOf("src/main/kotlin", "../../tools/benchmarks/shared/src", "../shared/src/main/kotlin", "../../endorsedLibraries/kliopt/src/main/kotlin")
|
||||
jvmSrcDirs = listOf("src/main/kotlin-jvm", "../shared/src/main/kotlin-jvm", "../../endorsedLibraries/kliopt/src/main/kotlin-jvm")
|
||||
nativeSrcDirs = listOf("src/main/kotlin-native", "../shared/src/main/kotlin-native/common", "../../endorsedLibraries/kliopt/src/main/kotlin-native")
|
||||
commonSrcDirs = listOf("src/main/kotlin", "../../tools/benchmarks/shared/src", "../shared/src/main/kotlin")
|
||||
jvmSrcDirs = listOf("src/main/kotlin-jvm", "../shared/src/main/kotlin-jvm")
|
||||
nativeSrcDirs = listOf("src/main/kotlin-native", "../shared/src/main/kotlin-native/common")
|
||||
mingwSrcDirs = listOf("../shared/src/main/kotlin-native/mingw")
|
||||
posixSrcDirs = listOf("../shared/src/main/kotlin-native/posix")
|
||||
linkerOpts = listOf("$buildDir/pi.o")
|
||||
|
||||
dependencies.common(project(":endorsedLibraries:kliopt"))
|
||||
}
|
||||
|
||||
val compileLibary by tasks.creating {
|
||||
|
||||
@@ -20,6 +20,8 @@ benchmark {
|
||||
mingwSrcDirs = listOf("src/main/kotlin-native", "../shared/src/main/kotlin-native/mingw")
|
||||
posixSrcDirs = listOf("src/main/kotlin-native", "../shared/src/main/kotlin-native/posix")
|
||||
linkerOpts = listOf("-L$buildDir", "-lcomplexnumbers")
|
||||
|
||||
dependencies.common(project(":endorsedLibraries:kliopt"))
|
||||
}
|
||||
|
||||
val compileLibary by tasks.creating {
|
||||
|
||||
@@ -9,9 +9,11 @@ plugins {
|
||||
|
||||
benchmark {
|
||||
applicationName = "Ring"
|
||||
commonSrcDirs = listOf("../../tools/benchmarks/shared/src", "src/main/kotlin", "../shared/src/main/kotlin", "../../endorsedLibraries/kliopt/src/main/kotlin")
|
||||
jvmSrcDirs = listOf("src/main/kotlin-jvm", "../shared/src/main/kotlin-jvm", "../../endorsedLibraries/kliopt/src/main/kotlin-jvm")
|
||||
nativeSrcDirs = listOf("src/main/kotlin-native", "../shared/src/main/kotlin-native/common", "../../endorsedLibraries/kliopt/src/main/kotlin-native")
|
||||
commonSrcDirs = listOf("../../tools/benchmarks/shared/src", "src/main/kotlin", "../shared/src/main/kotlin")
|
||||
jvmSrcDirs = listOf("src/main/kotlin-jvm", "../shared/src/main/kotlin-jvm")
|
||||
nativeSrcDirs = listOf("src/main/kotlin-native", "../shared/src/main/kotlin-native/common")
|
||||
mingwSrcDirs = listOf("src/main/kotlin-native", "../shared/src/main/kotlin-native/mingw")
|
||||
posixSrcDirs = listOf("src/main/kotlin-native", "../shared/src/main/kotlin-native/posix")
|
||||
|
||||
dependencies.common(project(":endorsedLibraries:kliopt"))
|
||||
}
|
||||
|
||||
@@ -36,17 +36,21 @@ kotlin {
|
||||
commonMain {
|
||||
dependencies {
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-common:$kotlinVersion"
|
||||
implementation project(":endorsedLibraries:kliopt")
|
||||
}
|
||||
kotlin.srcDir "src"
|
||||
kotlin.srcDir "../shared/src/main/kotlin"
|
||||
kotlin.srcDir "$rootProject.projectDir/endorsedLibraries/kliopt/src/main/kotlin"
|
||||
kotlin.srcDir "$toolsPath/benchmarks/shared/src/main/kotlin"
|
||||
}
|
||||
macosMain {
|
||||
dependsOn commonMain
|
||||
kotlin.srcDir "../shared/src/main/kotlin-native/common"
|
||||
kotlin.srcDir "../shared/src/main/kotlin-native/posix"
|
||||
kotlin.srcDir "$rootProject.projectDir/endorsedLibraries/kliopt/src/main/kotlin-native"
|
||||
|
||||
// Exclude kliopt added in commonMain dependencies and inherited by macosMain.
|
||||
configurations.getByName(implementationConfigurationName) {
|
||||
exclude module: "kliopt"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user