This repository was archived by the owner on Jul 13, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.gradle.kts
117 lines (96 loc) · 2.68 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
import java.io.ByteArrayOutputStream
val shade: Configuration by configurations.creating
plugins {
java
application
kotlin("jvm") version "1.9.23"
kotlin("plugin.serialization") version "1.9.23"
id("org.graalvm.buildtools.native") version "0.10.2"
}
group = "ru.meproject"
version = "1.0.0-RC.19"
repositories {
mavenCentral()
maven(url = "https://repo.mattmalec.com/repository/releases")
}
configurations {
implementation.get().extendsFrom(shade)
shade.resolutionStrategy.cacheChangingModulesFor(0, TimeUnit.SECONDS)
}
dependencies {
testImplementation(kotlin("test"))
shade("com.github.ajalt.clikt:clikt:4.4.0")
shade("com.mattmalec:Pterodactyl4J:2.BETA_141")
shade("org.slf4j:slf4j-nop:1.7.32")
shade("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3")
}
tasks.test {
useJUnitPlatform()
}
kotlin {
jvmToolchain(21)
}
tasks.withType<Jar> {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
from(
shade.map {
if (it.isDirectory) it else zipTree(it)
}
)
}
application {
mainClass = "ru.meproject.pterocli.PterocliKt"
}
java {
manifest {
attributes(
"Main-Class" to "ru.meproject.pterocli.PterocliKt"
)
}
}
graalvmNative {
testSupport = false
metadataRepository {
enabled = true
}
agent {
enabled = true
metadataCopy {
inputTaskNames.add("test")
outputDirectories.add("src/main/resources/META-INF/native-image/ru/meproject/pterocli")
mergeWithExisting = true
}
}
binaries {
named("main") {
mainClass = "ru.meproject.pterocli.PterocliKt"
buildArgs.addAll("--enable-sbom", "-H:+AddAllCharsets")
runtimeArgs.addAll("-Xmx512M")
}
}
}
fun isWindows(): Boolean = System.getProperty("os.name").lowercase().contains("win")
fun gitShortRev(): String {
val outputStream = ByteArrayOutputStream()
exec {
if (isWindows()) {
commandLine("cmd", "/c", "git rev-parse --short HEAD")
} else {
commandLine("bash", "-c", "git rev-parse --short HEAD")
}
standardOutput = outputStream
}
return outputStream.toString().trim()
}
tasks.register<Copy>("generateTemplates") {
inputs.properties("version" to version, "gitRev" to gitShortRev())
from(file("src/main/templates"))
into(layout.buildDirectory.dir("generated/sources/templates"))
expand("version" to version, "gitRev" to gitShortRev())
}
sourceSets.main {
java.srcDir(tasks.named("generateTemplates").map { it.outputs.files })
}
tasks.compileKotlin {
dependsOn(tasks.named("generateTemplates"))
}