-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle.kts
96 lines (81 loc) · 2.33 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
import org.graalvm.buildtools.gradle.tasks.BuildNativeImageTask
val branch: String by project
val revision: String by project
val cliktVersion: String by project
val markdownVersion: String by project
val inquirerVersion: String by project
val mordantVersion: String by project
plugins {
application
kotlin("jvm") version "1.6.10"
kotlin("plugin.serialization") version "1.6.10"
id("com.github.johnrengelman.shadow") version "7.0.0"
id("org.graalvm.buildtools.native") version "0.9.11"
}
group = "dev.shellbook"
version = revision
repositories {
mavenCentral()
maven (url="https://jitpack.io")
}
dependencies {
implementation(kotlin("stdlib"))
implementation("com.github.kotlin-inquirer:kotlin-inquirer:$inquirerVersion")
implementation("com.github.ajalt.mordant:mordant:$mordantVersion")
implementation("com.github.ajalt.clikt:clikt:$cliktVersion")
implementation("org.jetbrains:markdown:$markdownVersion")
testImplementation(kotlin("test"))
}
application {
mainClass.set("dev.shellbook.ShellbookCliKt")
}
graalvmNative {
binaries {
named("main") {
buildArgs.add("--allow-incomplete-classpath")
buildArgs.add("--enable-url-protocols=https")
buildArgs.add("-H:IncludeResources=application.properties")
}
}
}
tasks {
register<Copy>("installLocalGitHook") {
from("hooks/")
into(".git/hooks")
fileMode=0b111101101
}
processResources {
dependsOn("installLocalGitHook")
filesMatching("application.properties") {
expand("version" to revision)
}
}
withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
kotlinOptions {
jvmTarget = "11"
}
}
shadowJar {
manifest {
attributes(mapOf(
"Implementation-Version" to archiveVersion
))
}
archiveBaseName.set(rootProject.name)
archiveClassifier.set("")
archiveVersion.set("")
mergeServiceFiles()
}
}
tasks.withType<Tar> {
compression = Compression.GZIP
archiveExtension.set("tar.gz")
}
distributions {
create("native") {
distributionBaseName.set("shellbook-native")
contents {
from(tasks.named<BuildNativeImageTask>("nativeCompile").get().outputs)
}
}
}