@@ -27,15 +27,15 @@ plugins {
27
27
28
28
id ' idea'
29
29
}
30
- idea. module. outputDir file(" out/production/classes" ) // fix running via IntelliJ
30
+ idea. module. outputDir file(' out/production/classes' ) // fix running via IntelliJ
31
31
32
32
/*
33
33
* REMEMBER: also update the version string in Main.java
34
34
*/
35
- version = " 3.5.1"
36
- description = " A cross-platform GUI and CLI app for saving SHSH blobs"
37
- String appIdentifier = " airsquared.blobsaver.app"
38
- String copyright = " Copyright (c) 2023 airsquared"
35
+ version = ' 3.5.1'
36
+ description = ' A cross-platform GUI and CLI app for saving SHSH blobs'
37
+ String appIdentifier = ' airsquared.blobsaver.app'
38
+ String copyright = ' Copyright (c) 2023 airsquared'
39
39
def os = DefaultNativePlatform . currentOperatingSystem
40
40
41
41
startScripts. enabled = distZip. enabled = distTar. enabled = false
@@ -56,7 +56,7 @@ dependencies {
56
56
implementation ' info.picocli:picocli:4.7.4'
57
57
58
58
testImplementation ' org.junit.jupiter:junit-jupiter:5.9.3'
59
- testImplementation group : ' org.testfx' , name : ' openjfx-monocle' , version : ' jdk-12.0.1+2'
59
+ testImplementation ' org.testfx: openjfx-monocle: jdk-12.0.1+2'
60
60
}
61
61
62
62
javafx {
@@ -71,26 +71,26 @@ compileJava {
71
71
}
72
72
73
73
application {
74
- mainModule = " airsquared.blobsaver"
75
- mainClass = " airsquared.blobsaver.app.Main"
74
+ mainModule = ' airsquared.blobsaver'
75
+ mainClass = ' airsquared.blobsaver.app.Main'
76
76
applicationDefaultJvmArgs. addAll addExports
77
77
}
78
78
79
79
private String getJarDirectory () {
80
80
String dir = " "
81
- if (DefaultNativePlatform . currentOperatingSystem. isMacOsX()) dir = " macos/Contents"
82
- else if (DefaultNativePlatform . currentOperatingSystem. isWindows()) dir = " windows/files"
83
- else if (DefaultNativePlatform . currentOperatingSystem. isLinux()) dir = " linux"
81
+ if (DefaultNativePlatform . currentOperatingSystem. isMacOsX()) dir = ' macos/Contents'
82
+ else if (DefaultNativePlatform . currentOperatingSystem. isWindows()) dir = ' windows/files'
83
+ else if (DefaultNativePlatform . currentOperatingSystem. isLinux()) dir = ' linux'
84
84
return " ${ projectDir} /dist/${ dir} "
85
85
}
86
86
87
87
run {
88
- systemProperty " jar.directory" , getJarDirectory()
88
+ systemProperty ' jar.directory' , getJarDirectory()
89
89
}
90
90
91
91
test {
92
92
useJUnitPlatform()
93
- systemProperty " jar.directory" , getJarDirectory()
93
+ systemProperty ' jar.directory' , getJarDirectory()
94
94
jvmArgs addExports
95
95
jvmArgs ' --add-exports=javafx.graphics/com.sun.glass.ui=org.testfx.monocle'
96
96
}
@@ -103,7 +103,7 @@ jlink {
103
103
launcher {
104
104
jvmArgs = [ ' -Djar.directory={{BIN_DIR}}' ]
105
105
jvmArgs. addAll addExports
106
- if (findProperty(" noConsole" ) != ' false' ) {
106
+ if (findProperty(' noConsole' ) != ' false' ) {
107
107
noConsole = true
108
108
}
109
109
}
@@ -114,9 +114,9 @@ jlink {
114
114
installerOutputDir = file(" ${ buildDir} /distributions/" )
115
115
116
116
if (os. isMacOsX()) {
117
- installerType = " dmg"
118
- String arch = DefaultNativePlatform . currentArchitecture. amd64 ? " intel" : " arm"
119
- installerName = name + " - " + arch
117
+ installerType = ' dmg'
118
+ String arch = DefaultNativePlatform . currentArchitecture. amd64 ? ' intel' : ' arm'
119
+ installerName = " ${ name } - ${ arch} "
120
120
imageOptions. addAll ' --mac-package-identifier' , appIdentifier
121
121
icon = " ${ projectDir} /dist/macos/Contents/Resources/blob.icns"
122
122
} else if (os. isWindows()) {
@@ -143,13 +143,13 @@ jlink {
143
143
into " ${ buildDir} /jpackage/blobsaver.app/Contents/Resources"
144
144
}
145
145
exec { // needed to prevent "application is damaged" error when opening quarantined app
146
- commandLine " codesign" , " --force" , " --deep" , " --sign" , " - " , " ${ buildDir} /jpackage/blobsaver.app"
146
+ commandLine ' codesign' , ' --force' , ' --deep' , ' --sign' , ' - ' , " ${ buildDir} /jpackage/blobsaver.app"
147
147
}
148
148
} else if (os. isWindows()) jpackageImage. doLast {
149
149
copy {
150
150
from " ${ projectDir} /dist/windows/files" , " ${ buildDir} /jpackage/blobsaver/runtime/bin/zip.dll"
151
- rename " LICENSE_windows" , " LICENSE"
152
- rename " libraries_used_windows.txt" , " libraries_used.txt"
151
+ rename ' LICENSE_windows' , ' LICENSE'
152
+ rename ' libraries_used_windows.txt' , ' libraries_used.txt'
153
153
into " ${ buildDir} /jpackage/blobsaver"
154
154
}
155
155
} else jpackageImage. doLast {
@@ -161,23 +161,22 @@ jlink {
161
161
162
162
}
163
163
164
- if (! os. isWindows() && findProperty(' installerType' ) != " tar.gz" ) {
165
- assemble. dependsOn jpackage
166
- }
167
- if (findProperty(' installerType' ) == " tar.gz" ) {
168
- jpackage. enabled = false
169
- assemble. dependsOn createLinuxTargz
164
+ task createZip (type : Zip , dependsOn : jpackageImage) {
165
+ if (os. isMacOsX()) {
166
+ String arch = DefaultNativePlatform . currentArchitecture. amd64 ? ' intel' : ' arm'
167
+ archiveFileName = " ${ project.name} -${ arch} -${ project.version} .zip"
168
+ } else {
169
+ archiveFileName = " ${ project.name} -${ project.version} .zip"
170
+ }
171
+ from " ${ buildDir} /jpackage"
172
+ destinationDirectory = file(" ${ buildDir} /distributions/" )
170
173
}
171
174
172
175
task createLinuxTargz (type : Tar , dependsOn : jpackageImage) {
173
176
archiveFileName = " blobsaver-${ project.version} .tar.gz"
174
177
compression = Compression . GZIP
175
- destinationDirectory = file(" ${ buildDir} /distributions/" )
176
178
from " ${ buildDir} /jpackage/blobsaver"
177
-
178
- if (os. isLinux()) {
179
- jpackage. finalizedBy createLinuxTargz
180
- }
179
+ destinationDirectory = file(" ${ buildDir} /distributions/" )
181
180
}
182
181
183
182
task windowsInstaller (dependsOn : jpackageImage) { // requires inno setup to be installed
@@ -191,12 +190,36 @@ task windowsInstaller(dependsOn: jpackageImage) { // requires inno setup to be i
191
190
OutputDir : " ${ buildDir} \\ distributions" . toString()])
192
191
}
193
192
exec {
194
- commandLine " iscc" , " /Qp" , " ${ buildDir} \\ jpackage\\ blobsaver.iss"
193
+ commandLine ' iscc' , ' /Qp' , " ${ buildDir} \\ jpackage\\ blobsaver.iss"
195
194
}
196
195
delete " ${ buildDir} /jpackage/blobsaver.iss"
197
196
}
197
+ }
198
198
199
- if (os. isWindows() && findProperty(' installerType' ) != " portable" ) {
200
- assemble. dependsOn windowsInstaller
201
- }
199
+ task bumpCaskPR (type : Exec ) {
200
+ commandLine ' brew' , ' bump-cask-pr' , ' blobsaver' , ' --no-audit' , ' --no-style' , ' --version' , version
201
+ }
202
+
203
+ if (! os. isWindows()) { // never do jpackage on windows
204
+ assemble. dependsOn jpackage // will be disabled on other OS if installerType is set to certain values
205
+ }
206
+ if (findProperty(' installerType' ) == ' tar.gz' ) {
207
+ jpackage. enabled = false
208
+ assemble. dependsOn createLinuxTargz
209
+ }
210
+ if (findProperty(' installerType' ) == ' zip' ) {
211
+ jpackage. enabled = false
212
+ assemble. dependsOn createZip
213
+ }
214
+ if (findProperty(' installerType' ) == ' portable' ) {
215
+ jpackage. enabled = false
216
+ }
217
+ if (os. isMacOsX() && findProperty(' installerType' ) == null ) {
218
+ jpackage. finalizedBy createZip
219
+ }
220
+ if (os. isLinux() && findProperty(' installerType' ) == null ) {
221
+ jpackage. finalizedBy createLinuxTargz
202
222
}
223
+ if (os. isWindows() && findProperty(' installerType' ) == null ) {
224
+ assemble. dependsOn windowsInstaller
225
+ }
0 commit comments