Skip to content

Commit e69326f

Browse files
Gooolerqurbonzoda
authored andcommitted
Convert all Gradle build scripts to kts
1 parent fe7b163 commit e69326f

File tree

4 files changed

+142
-125
lines changed

4 files changed

+142
-125
lines changed

benchmarks/runner/build.gradle

Lines changed: 0 additions & 111 deletions
This file was deleted.

benchmarks/runner/build.gradle.kts

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
plugins {
2+
id("org.jetbrains.kotlin.jvm")
3+
}
4+
5+
dependencies {
6+
implementation("org.jetbrains.kotlin:kotlin-stdlib")
7+
implementation("org.openjdk.jmh:jmh-core:1.21")
8+
9+
runtimeOnly(project(path = ":benchmarks", configuration = "benchmarksJar"))
10+
runtimeOnly(project(":kotlinx-collections-immutable"))
11+
}
12+
13+
sourceSets.main {
14+
kotlin.srcDirs("src")
15+
}
16+
17+
// map
18+
val benchmarkHashMap by tasks.registering(JavaExec::class) {
19+
group = "Benchmark"
20+
mainClass.set("runners.HashMapRunnerKt")
21+
}
22+
23+
val benchmarkHashMapBuilder by tasks.registering(JavaExec::class) {
24+
group = "Benchmark"
25+
mainClass.set("runners.HashMapBuilderRunnerKt")
26+
}
27+
28+
val benchmarkOrderedMap by tasks.registering(JavaExec::class) {
29+
group = "Benchmark"
30+
mainClass.set("runners.OrderedMapRunnerKt")
31+
}
32+
33+
val benchmarkOrderedMapBuilder by tasks.registering(JavaExec::class) {
34+
group = "Benchmark"
35+
mainClass.set("runners.OrderedMapBuilderRunnerKt")
36+
}
37+
38+
val benchmarkAllMaps by tasks.registering {
39+
group = "Benchmark"
40+
dependsOn(benchmarkHashMap)
41+
dependsOn(benchmarkHashMapBuilder)
42+
dependsOn(benchmarkOrderedMap)
43+
dependsOn(benchmarkOrderedMapBuilder)
44+
}
45+
46+
// set
47+
val benchmarkHashSet by tasks.registering(JavaExec::class) {
48+
group = "Benchmark"
49+
mainClass.set("runners.HashSetRunnerKt")
50+
}
51+
52+
val benchmarkHashSetBuilder by tasks.registering(JavaExec::class) {
53+
group = "Benchmark"
54+
mainClass.set("runners.HashSetBuilderRunnerKt")
55+
}
56+
57+
val benchmarkOrderedSet by tasks.registering(JavaExec::class) {
58+
group = "Benchmark"
59+
mainClass.set("runners.OrderedSetRunnerKt")
60+
}
61+
62+
val benchmarkOrderedSetBuilder by tasks.registering(JavaExec::class) {
63+
group = "Benchmark"
64+
mainClass.set("runners.OrderedSetBuilderRunnerKt")
65+
}
66+
67+
val benchmarkAllSets by tasks.registering {
68+
group = "Benchmark"
69+
dependsOn(benchmarkHashSet)
70+
dependsOn(benchmarkHashSetBuilder)
71+
dependsOn(benchmarkOrderedSet)
72+
dependsOn(benchmarkOrderedSetBuilder)
73+
}
74+
75+
// list
76+
val benchmarkList by tasks.registering(JavaExec::class) {
77+
group = "Benchmark"
78+
mainClass.set("runners.ListRunnerKt")
79+
}
80+
81+
val benchmarkListBuilder by tasks.registering(JavaExec::class) {
82+
group = "Benchmark"
83+
mainClass.set("runners.ListBuilderRunnerKt")
84+
}
85+
86+
val benchmarkAllLists by tasks.registering {
87+
group = "Benchmark"
88+
dependsOn(benchmarkList)
89+
dependsOn(benchmarkListBuilder)
90+
}
91+
92+
// all
93+
val benchmarkAll by tasks.registering {
94+
group = "Benchmark"
95+
dependsOn(benchmarkAllMaps)
96+
dependsOn(benchmarkAllSets)
97+
dependsOn(benchmarkAllLists)
98+
}
99+
100+
// configure runner tasks
101+
102+
val benchmarkParams = listOf(
103+
"remote",
104+
"forks",
105+
"measurementIterations",
106+
"measurementTime",
107+
"warmupIterations",
108+
"warmupTime",
109+
// "exclude",
110+
// "include",
111+
"size",
112+
"hashCodeType",
113+
"immutablePercentage"
114+
)
115+
116+
tasks.withType<JavaExec>().configureEach {
117+
if (group == "Benchmark") {
118+
classpath = sourceSets.main.get().runtimeClasspath
119+
120+
benchmarkParams.forEach { param ->
121+
if (project.hasProperty(param)) {
122+
systemProperty(param, requireNotNull(project.property(param)))
123+
}
124+
}
125+
}
126+
}

settings.gradle

Lines changed: 0 additions & 14 deletions
This file was deleted.

settings.gradle.kts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
pluginManagement {
2+
repositories {
3+
maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlinx/maven")
4+
gradlePluginPortal()
5+
}
6+
}
7+
8+
rootProject.name = "Kotlin-Immutable-Collections" // TODO: Make readable name when it's not used in js module names
9+
10+
include(":core")
11+
project(":core").name="kotlinx-collections-immutable"
12+
13+
include(
14+
":benchmarks",
15+
":benchmarks:runner"
16+
)

0 commit comments

Comments
 (0)