2022-07-23 20:34:23 +02:00
|
|
|
import java.io.FileOutputStream
|
|
|
|
import de.undercouch.gradle.tasks.download.Download
|
|
|
|
|
|
|
|
plugins {
|
|
|
|
java
|
|
|
|
application
|
|
|
|
`maven-publish`
|
|
|
|
id("com.github.johnrengelman.shadow") version "7.1.2"
|
|
|
|
id("de.undercouch.download") version "5.1.0"
|
|
|
|
}
|
|
|
|
|
|
|
|
application {
|
|
|
|
mainClass.set("io.gitlab.jfronny.inceptum.WrapperStrap")
|
|
|
|
}
|
|
|
|
|
|
|
|
repositories {
|
|
|
|
mavenCentral()
|
|
|
|
maven {
|
|
|
|
setUrl("https://gitlab.com/api/v4/projects/35745143/packages/maven")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
2022-07-23 22:45:39 +02:00
|
|
|
implementation(project(":common"))
|
2022-07-23 20:34:23 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
abstract class FileOutput : DefaultTask() {
|
|
|
|
@get:OutputFile
|
|
|
|
abstract var output: File
|
|
|
|
}
|
|
|
|
val bootstrapVersion = "0.2.1"
|
|
|
|
val bootstrapArch = "i686"
|
|
|
|
|
|
|
|
val downloadBootstrap by tasks.registering(Download::class) {
|
|
|
|
src("https://maven.fabricmc.net/net/fabricmc/fabric-installer-native-bootstrap/windows-${bootstrapArch}/${bootstrapVersion}/windows-${bootstrapArch}-${bootstrapVersion}.exe")
|
|
|
|
dest(project.buildDir)
|
|
|
|
}
|
|
|
|
|
|
|
|
val nativeExe by tasks.registering(FileOutput::class) {
|
|
|
|
dependsOn(downloadBootstrap)
|
|
|
|
dependsOn(tasks.shadowJar)
|
|
|
|
|
2022-07-23 22:45:39 +02:00
|
|
|
output = file("$buildDir/libs/${project.name}-${project.version}.exe")
|
2022-07-23 20:34:23 +02:00
|
|
|
outputs.upToDateWhen { false }
|
|
|
|
|
|
|
|
doFirst {
|
|
|
|
output.delete()
|
|
|
|
}
|
|
|
|
|
|
|
|
doLast {
|
|
|
|
output.createNewFile()
|
|
|
|
FileOutputStream(output).use { w ->
|
|
|
|
w.write(downloadBootstrap.get().outputFiles.first().readBytes())
|
|
|
|
w.write(tasks.shadowJar.get().archiveFile.get().asFile.readBytes())
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-07-23 22:45:39 +02:00
|
|
|
if (rootProject.extra["flavor"] == "windows") {
|
|
|
|
tasks.build.get().dependsOn(nativeExe)
|
|
|
|
}
|
2022-07-23 20:34:23 +02:00
|
|
|
|
|
|
|
publishing {
|
|
|
|
publications {
|
|
|
|
create<MavenPublication>("mavenJava") {
|
|
|
|
artifact(tasks.shadowJar) {
|
|
|
|
builtBy(tasks.shadowJar)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (rootProject.extra["isPublic"] == true) {
|
|
|
|
repositories.maven {
|
|
|
|
url = uri("https://gitlab.com/api/v4/projects/30862253/packages/maven")
|
|
|
|
name = "gitlab"
|
|
|
|
|
|
|
|
credentials(HttpHeaderCredentials::class) {
|
|
|
|
name = "Job-Token"
|
2022-07-23 21:37:40 +02:00
|
|
|
value = System.getenv()["CI_JOB_TOKEN"]
|
|
|
|
}
|
|
|
|
authentication {
|
|
|
|
create<HttpHeaderAuthentication>("header")
|
2022-07-23 20:34:23 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
repositories.mavenLocal()
|
|
|
|
}
|