SetupTachideskJar is now a required task, and it auto-updates the jar if needed

This commit is contained in:
Syer10
2021-07-17 22:55:48 -04:00
parent 9edd3b061d
commit 12e6b90696
3 changed files with 25 additions and 12 deletions

View File

@@ -16,14 +16,14 @@ jobs:
arch: x64 arch: x64
os: ubuntu-latest os: ubuntu-latest
shell: bash shell: bash
build: setupTachideskJar packageUberJarForCurrentOS packageDeb build: packageUberJarForCurrentOS packageDeb
setupCl: ./scripts/SetupClUnix.sh setupCl: ./scripts/SetupClUnix.sh
- runtime: linux-centos-x64 - runtime: linux-centos-x64
arch: x64 arch: x64
os: ubuntu-latest os: ubuntu-latest
shell: bash shell: bash
build: setupTachideskJar packageRpm build: packageRpm
setupCl: ./scripts/SetupClUnix.sh setupCl: ./scripts/SetupClUnix.sh
- runtime: osx-x64 - runtime: osx-x64
@@ -31,7 +31,7 @@ jobs:
os: macOS-latest os: macOS-latest
shell: bash shell: bash
build: | build: |
setupTachideskJar packageUberJarForCurrentOS \ packageUberJarForCurrentOS \
packageDmg notarizeDmg \ packageDmg notarizeDmg \
-Pcompose.desktop.mac.sign=true \ -Pcompose.desktop.mac.sign=true \
-Pcompose.desktop.mac.signing.identity=${{ secrets.APPLE_IDENTITY }} \ -Pcompose.desktop.mac.signing.identity=${{ secrets.APPLE_IDENTITY }} \
@@ -43,7 +43,7 @@ jobs:
arch: x64 arch: x64
os: windows-latest os: windows-latest
shell: powershell shell: powershell
build: setupTachideskJar packageUberJarForCurrentOS packageMsi build: packageUberJarForCurrentOS packageMsi
setupCl: ./scripts/SetupClWindows.ps1 setupCl: ./scripts/SetupClWindows.ps1
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}

View File

@@ -67,9 +67,7 @@ Join Tachidesk's [discord server](https://discord.gg/wgPyb7hE5d) to hang out wit
### Prerequisite: Software dependencies ### Prerequisite: Software dependencies
You need this software packages installed in order to build this project: You need this software packages installed in order to build this project:
- Java Development Kit and Java Runtime Environment version 15, this can be handled by IntelliJ - Java Development Kit and Java Runtime Environment version 15, this can be handled by IntelliJ
### Prerequisite: Getting Tachidesk.jar ### Building a jar for your OS
Run `./gradlew setupTachideskJar`, it will add the required Tachidesk jar to the resources. Note that you will have to delete it and run the task again if the required version has been bumped
### building a jar for your OS
Run `./gradlew packageUberJarForCurrentOS`, the resulting built jar file will be `build/compose/TachideskJUI-os-arch-X.Y.Z.jar`. Run `./gradlew packageUberJarForCurrentOS`, the resulting built jar file will be `build/compose/TachideskJUI-os-arch-X.Y.Z.jar`.

View File

@@ -1,18 +1,20 @@
import Config.tachideskVersion
import de.undercouch.gradle.tasks.download.Download import de.undercouch.gradle.tasks.download.Download
import org.gradle.api.Project
import org.gradle.api.Task
import org.gradle.api.tasks.Copy import org.gradle.api.tasks.Copy
import org.gradle.api.tasks.Delete import org.gradle.api.tasks.Delete
import org.gradle.api.tasks.Exec import org.gradle.api.tasks.Exec
import org.gradle.api.tasks.bundling.Zip
import org.gradle.kotlin.dsl.KotlinClosure1 import org.gradle.kotlin.dsl.KotlinClosure1
import org.gradle.kotlin.dsl.TaskContainerScope import org.gradle.kotlin.dsl.TaskContainerScope
import org.gradle.kotlin.dsl.register import org.gradle.kotlin.dsl.register
import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
import java.io.File import java.io.File
import Config.tachideskVersion import java.util.jar.JarFile
import org.gradle.api.Project
import org.gradle.api.Task
import org.gradle.api.tasks.bundling.Zip
private const val tachideskGroup = "tachidesk" private const val tachideskGroup = "tachidesk"
private const val deleteOldTachideskTask = "deleteOldTachidesk"
private const val downloadTask = "downloadTar" private const val downloadTask = "downloadTar"
private const val extractTask = "extractTar" private const val extractTask = "extractTar"
private const val androidScriptTask = "runGetAndroid" private const val androidScriptTask = "runGetAndroid"
@@ -45,8 +47,20 @@ private fun Project.tmpDir() = File(rootDir, "tmp")
fun TaskContainerScope.registerTachideskTasks(project: Project) { fun TaskContainerScope.registerTachideskTasks(project: Project) {
with(project) { with(project) {
register<Delete>(deleteOldTachideskTask) {
group = tachideskGroup
val tachideskJar = File(rootDir, "src/main/resources/Tachidesk.jar")
onlyIf {
tachideskJar.exists() && JarFile(tachideskJar).use {
it.manifest?.mainAttributes?.getValue("Specification-Version") != tachideskVersion
}
}
delete(tachideskJar)
}
register<Download>(downloadTask) { register<Download>(downloadTask) {
group = tachideskGroup group = tachideskGroup
mustRunAfter(deleteOldTachideskTask)
onlyIfTachideskDoesntExist(rootDir) onlyIfTachideskDoesntExist(rootDir)
val tmpDir = tmpDir() val tmpDir = tmpDir()
@@ -175,6 +189,7 @@ fun TaskContainerScope.registerTachideskTasks(project: Project) {
group = tachideskGroup group = tachideskGroup
dependsOn( dependsOn(
deleteOldTachideskTask,
downloadTask, downloadTask,
extractTask, extractTask,
androidScriptTask, androidScriptTask,
@@ -190,6 +205,6 @@ fun TaskContainerScope.registerTachideskTasks(project: Project) {
} }
named("processResources") { named("processResources") {
mustRunAfter(runAllTachideskTasks) dependsOn(runAllTachideskTasks)
} }
} }