-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle.kts
127 lines (115 loc) · 3.69 KB
/
build.gradle.kts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
//import korlibs.korge.gradle.configureAutoVersions
//buildscript {
// val korgePluginVersion: String by project
//
// repositories {
// println("Setting up buildscript>repositories>build.gradle.kts")
// mavenLocal()
// mavenCentral()
// google()
// maven { url = uri("https://plugins.gradle.org/m2/") }
// }
//
// dependencies {
// classpath("com.soywiz.korlibs.korge.plugins:korge-gradle-plugin:$korgePluginVersion")
// }
//}
//
//configureAutoVersions()
plugins {
kotlin("multiplatform")
kotlin("plugin.serialization")
id("maven-publish")
id("org.jetbrains.kotlinx.benchmark") version "0.4.10"
id("org.jetbrains.kotlin.plugin.allopen") version "1.6.0"
}
allOpen {
annotation("org.openjdk.jmh.annotations.State")
}
group = "com.xenotactic.ecs"
version = "1.0.0"
val kotlinxSerialization: String by project
val kotlinxBenchmark: String by project
repositories {
mavenCentral()
}
java {
toolchain.languageVersion.set(JavaLanguageVersion.of(8))
}
kotlin {
// jvmToolchain(18)
jvm {
compilations.all {
kotlinOptions.jvmTarget = "1.8"
}
withJava()
testRuns["test"].executionTask.configure {
useJUnitPlatform()
}
}
js(IR) {
browser {
commonWebpackConfig {
}
}
}
val hostOs = System.getProperty("os.name")
val isMingwX64 = hostOs.startsWith("Windows")
val nativeTarget = when {
hostOs == "Mac OS X" -> macosX64("native")
hostOs == "Linux" -> linuxX64("native")
isMingwX64 -> mingwX64("native")
else -> throw GradleException("Host OS is not supported in Kotlin/Native.")
}
sourceSets {
val commonMain by getting {
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:$kotlinxSerialization")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-protobuf:$kotlinxSerialization")
implementation("org.jetbrains.kotlinx:kotlinx-benchmark-runtime:$kotlinxBenchmark")
}
}
val commonTest by getting {
dependencies {
implementation(kotlin("test"))
implementation(project(":ktruth"))
}
}
val jvmMain by getting
val jvmTest by getting
val jsMain by getting
val jsTest by getting
val nativeMain by getting
val nativeTest by getting
}
}
benchmark {
// configurations {
// named("main") {
// // iterations = 10
// // iterationTime = 5
// // iterationTimeUnit = "sec"
// outputTimeUnit = "ms"
// exclude("AllocationBenchmark")
// }
//// main { // main configuration is created automatically, but you can change its defaults
//// exclude("AllocationBenchmark")
//// warmups = 20 // number of warmup iterations
//// iterations = 10 // number of iterations
//// iterationTime = 3 // time in seconds per iteration
//// }
// //// smoke {
// //// warmups = 5 // number of warmup iterations
// //// iterations = 3 // number of iterations
// //// iterationTime = 500 // time in seconds per iteration
// //// iterationTimeUnit = "ms" // time unit for iterationTime, default is seconds
// //// }
//// [email protected]("AllocationBenchmark")
// // exclude("AllocationBenchmark")
// }
targets {
// register("main")
register("jvm")
// register("jsIr")
}
}