-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbuild.gradle
More file actions
169 lines (146 loc) · 5.59 KB
/
build.gradle
File metadata and controls
169 lines (146 loc) · 5.59 KB
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
import org.gradle.internal.os.OperatingSystem
buildscript {
repositories {
mavenCentral()
}
}
plugins {
id 'java-library'
id("com.gradleup.shadow") version "8.3.5"
}
repositories {
mavenCentral()
maven {
url = uri('https://openjfx.io/repo')
}
maven {
url = uri('https://repo.maven.apache.org/maven2/')
}
}
dependencies {
api libs.org.apache.commons.commons.lang3
api libs.commons.io.commons.io
// https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core
implementation group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.24.3'
// https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api
implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.24.3'
// https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-slf4j-impl
implementation group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.24.3'
api libs.org.jsoup.jsoup
// https://mvnrepository.com/artifact/com.microsoft.playwright/playwright
implementation group: 'com.microsoft.playwright', name: 'playwright', version: '1.49.0'
// https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc
implementation group: 'org.xerial', name: 'sqlite-jdbc', version: '3.49.1.0'
// https://mvnrepository.com/artifact/org.jdbi/jdbi3-core
implementation group: 'org.jdbi', name: 'jdbi3-core', version: '3.48.0'
// https://mvnrepository.com/artifact/org.jdbi/jdbi3-testing
testImplementation group: 'org.jdbi', name: 'jdbi3-testing', version: '3.48.0'
// https://mvnrepository.com/artifact/org.jdbi/jdbi3-sqlite
implementation group: 'org.jdbi', name: 'jdbi3-sqlite', version: '3.48.0'
// https://mvnrepository.com/artifact/info.picocli/picocli
implementation group: 'info.picocli', name: 'picocli', version: '4.7.6'
api libs.org.mockito.mockito.core
api libs.org.openjfx.javafx.controls
api libs.org.openjfx.javafx.fxml
api libs.org.openjfx.javafx.graphics
api libs.org.openjfx.javafx.web
api libs.org.kordamp.ikonli.ikonli.javafx
api libs.org.kordamp.ikonli.ikonli.carbonicons.pack
api libs.io.github.mkpaz.atlantafx.styles
api libs.io.github.mkpaz.atlantafx.base
api libs.org.openjfx.javafx.media
api libs.net.java.dev.jna.jna
api libs.net.java.dev.jna.jna.platform
api libs.jakarta.xml.bind.jakarta.xml.bind.api
api libs.com.sun.xml.bind.jaxb.impl
api libs.com.sun.xml.bind.jaxb.core
api libs.org.jetbrains.annotations
api libs.org.jetbrains.kotlin.kotlin.stdlib.jdk8
api libs.org.apache.maven.plugins.maven.jlink.plugin
api libs.org.apache.commons.commons.compress
api libs.org.iq80.snappy.snappy
testImplementation libs.org.junit.jupiter.junit.jupiter
testImplementation libs.org.testfx.testfx.core
testImplementation libs.org.jetbrains.kotlin.kotlin.test
compileOnly libs.org.projectlombok.lombok
annotationProcessor libs.org.projectlombok.lombok
}
group = 'com.gearshiftgaming.se_mod_manager'
version = '0.8.0.12'
description = 'Space-Engineers-Mod-Manager'
java.sourceCompatibility = JavaVersion.VERSION_21
tasks.withType(JavaCompile).configureEach {
options.encoding = 'UTF-8'
}
tasks.withType(Javadoc).configureEach {
options.encoding = 'UTF-8'
}
jar {
duplicatesStrategy = 'EXCLUDE'
}
shadowJar {
archiveBaseName = 'Space-Engineers-Mod-Manager'
archiveVersion.set(version.toString())
archiveClassifier.set("")
manifest {
attributes 'Main-Class': 'com.gearshiftgaming.se_mod_manager.SpaceEngineersModManager'
}
// You can also add exclusions or customizations here
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}
tasks.register('removeForeignBrowserBinaries') {
def jarFile = file("build/libs/Space-Engineers-Mod-Manager-${version}.jar")
def tempDir = file("build/tempJar")
copy {
from zipTree(jarFile)
into tempDir
}
if (OperatingSystem.current().isWindows()) {
delete "$tempDir/driver/mac/"
delete "$tempDir/driver/mac-arm64/"
delete "$tempDir/driver/linux/"
delete "$tempDir/driver/linux-arm64/"
} else {
delete "$tempDir/driver/mac/"
delete "$tempDir/driver/mac-arm64/"
delete "$tempDir/driver/win32_x64/"
}
}
tasks.register('removeForeignOsBrowsers', Jar) {
dependsOn removeForeignBrowserBinaries
manifest {
attributes 'Main-Class': 'com.gearshiftgaming.se_mod_manager.SpaceEngineersModManager'
}
destinationDirectory.set(layout.buildDirectory.dir("libs"))
from("build/tempJar")
}
def generatedVersionDir = "./src/main/resources"
sourceSets {
main {
output.dir(generatedVersionDir, builtBy: 'generateVersionProperties')
}
}
tasks.register('generateVersionProperties') {
doLast {
def propertiesFile = file "$generatedVersionDir/version.properties"
propertiesFile.parentFile.mkdirs()
def properties = new Properties()
properties.setProperty("version", rootProject.version.toString())
propertiesFile.withWriter { properties.store(it, null) }
}
}
processResources.dependsOn generateVersionProperties
compileJava.dependsOn generateVersionProperties
shadowJar.dependsOn generateVersionProperties
test.dependsOn generateVersionProperties
tasks.register('printVersionInformation') {
println(version)
}
tasks.withType(Test).configureEach {
useJUnitPlatform()
}
tasks.register('remoteTest', Test) {
description = "Runs all tests except for ones that won't work on GH actions."
exclude("**/ModInfoServiceTest.class")
}
remoteTest.dependsOn generateVersionProperties