-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
62 lines (45 loc) · 1.33 KB
/
build.gradle
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
plugins {
id 'java'
}
group 'me.jddev0.lang.example.nativemodule'
version '1.0'
repositories {
mavenCentral()
}
dependencies {
compileOnly 'at.jddev0.lang:lang-interpreter:1.0.0-beta-09'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
}
String moduleJarBaseName = 'Module.jar'
tasks.register("cleanLangModuleBuild") {
delete layout.buildDirectory.dir('tmp/langmodule')
}
tasks.register("buildNativeCode", Jar) {
archiveFileName = moduleJarBaseName
destinationDirectory = layout.buildDirectory.dir('tmp/langmodule/native')
with jar
}
tasks.register("copyLangModuleFiles", Copy) {
from 'src/main/langmodule'
into layout.buildDirectory.dir('tmp/langmodule')
}
tasks.register("prepareLangModuleFiles") {
dependsOn cleanLangModuleBuild, buildNativeCode, copyLangModuleFiles
}
tasks.register("buildLangModule", Zip) {
dependsOn prepareLangModuleFiles
from layout.buildDirectory.dir('tmp/langmodule')
archiveName 'module.lm'
destinationDir layout.buildDirectory.dir('libs').get().asFile
}
test {
useJUnitPlatform()
}
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_17
}
tasks.withType(JavaCompile).configureEach {
options.encoding = 'UTF-8'
}