From 12e6b906966481507fac071102e174875ad4b409 Mon Sep 17 00:00:00 2001 From: Syer10 Date: Sat, 17 Jul 2021 22:55:48 -0400 Subject: [PATCH] SetupTachideskJar is now a required task, and it auto-updates the jar if needed --- .github/workflows/Build.yml | 8 +++---- README.md | 4 +--- buildSrc/src/main/kotlin/TachideskTasks.kt | 25 +++++++++++++++++----- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/.github/workflows/Build.yml b/.github/workflows/Build.yml index 0149838f..ab78e349 100644 --- a/.github/workflows/Build.yml +++ b/.github/workflows/Build.yml @@ -16,14 +16,14 @@ jobs: arch: x64 os: ubuntu-latest shell: bash - build: setupTachideskJar packageUberJarForCurrentOS packageDeb + build: packageUberJarForCurrentOS packageDeb setupCl: ./scripts/SetupClUnix.sh - runtime: linux-centos-x64 arch: x64 os: ubuntu-latest shell: bash - build: setupTachideskJar packageRpm + build: packageRpm setupCl: ./scripts/SetupClUnix.sh - runtime: osx-x64 @@ -31,7 +31,7 @@ jobs: os: macOS-latest shell: bash build: | - setupTachideskJar packageUberJarForCurrentOS \ + packageUberJarForCurrentOS \ packageDmg notarizeDmg \ -Pcompose.desktop.mac.sign=true \ -Pcompose.desktop.mac.signing.identity=${{ secrets.APPLE_IDENTITY }} \ @@ -43,7 +43,7 @@ jobs: arch: x64 os: windows-latest shell: powershell - build: setupTachideskJar packageUberJarForCurrentOS packageMsi + build: packageUberJarForCurrentOS packageMsi setupCl: ./scripts/SetupClWindows.ps1 runs-on: ${{ matrix.os }} diff --git a/README.md b/README.md index 47a87a2d..5c8d3309 100644 --- a/README.md +++ b/README.md @@ -67,9 +67,7 @@ Join Tachidesk's [discord server](https://discord.gg/wgPyb7hE5d) to hang out wit ### Prerequisite: Software dependencies 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 -### Prerequisite: Getting Tachidesk.jar -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 +### 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`. diff --git a/buildSrc/src/main/kotlin/TachideskTasks.kt b/buildSrc/src/main/kotlin/TachideskTasks.kt index 88a8f6d3..aba65103 100644 --- a/buildSrc/src/main/kotlin/TachideskTasks.kt +++ b/buildSrc/src/main/kotlin/TachideskTasks.kt @@ -1,18 +1,20 @@ +import Config.tachideskVersion 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.Delete import org.gradle.api.tasks.Exec +import org.gradle.api.tasks.bundling.Zip import org.gradle.kotlin.dsl.KotlinClosure1 import org.gradle.kotlin.dsl.TaskContainerScope import org.gradle.kotlin.dsl.register import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform import java.io.File -import Config.tachideskVersion -import org.gradle.api.Project -import org.gradle.api.Task -import org.gradle.api.tasks.bundling.Zip +import java.util.jar.JarFile private const val tachideskGroup = "tachidesk" +private const val deleteOldTachideskTask = "deleteOldTachidesk" private const val downloadTask = "downloadTar" private const val extractTask = "extractTar" private const val androidScriptTask = "runGetAndroid" @@ -45,8 +47,20 @@ private fun Project.tmpDir() = File(rootDir, "tmp") fun TaskContainerScope.registerTachideskTasks(project: Project) { with(project) { + register(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(downloadTask) { group = tachideskGroup + mustRunAfter(deleteOldTachideskTask) onlyIfTachideskDoesntExist(rootDir) val tmpDir = tmpDir() @@ -175,6 +189,7 @@ fun TaskContainerScope.registerTachideskTasks(project: Project) { group = tachideskGroup dependsOn( + deleteOldTachideskTask, downloadTask, extractTask, androidScriptTask, @@ -190,6 +205,6 @@ fun TaskContainerScope.registerTachideskTasks(project: Project) { } named("processResources") { - mustRunAfter(runAllTachideskTasks) + dependsOn(runAllTachideskTasks) } } \ No newline at end of file