|
1 | 1 | import org.gradle.internal.jvm.Jvm
|
2 |
| -import org.gradle.kotlin.dsl.support.zipTo |
3 | 2 | import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
|
4 | 3 | import org.jetbrains.compose.desktop.application.dsl.TargetFormat
|
5 | 4 | import org.jetbrains.compose.desktop.application.tasks.AbstractJPackageTask
|
6 | 5 | import org.jetbrains.compose.internal.de.undercouch.gradle.tasks.download.Download
|
7 |
| -import org.jetbrains.kotlin.fir.scopes.impl.overrides |
8 | 6 | import java.io.FileOutputStream
|
9 | 7 | import java.util.zip.ZipEntry
|
10 | 8 | import java.util.zip.ZipOutputStream
|
@@ -279,12 +277,13 @@ tasks.register<Zip>("zipDistributable"){
|
279 | 277 | }
|
280 | 278 |
|
281 | 279 | afterEvaluate{
|
| 280 | + // Override the default DMG task to use our custom one |
282 | 281 | tasks.named("packageDmg").configure{
|
283 | 282 | dependsOn("packageCustomDmg")
|
284 | 283 | group = "compose desktop"
|
285 | 284 | actions = emptyList()
|
286 | 285 | }
|
287 |
| - |
| 286 | + // Override the default MSI task to use our custom one |
288 | 287 | tasks.named("packageMsi").configure{
|
289 | 288 | dependsOn("packageCustomMsi")
|
290 | 289 | group = "compose desktop"
|
@@ -335,12 +334,26 @@ tasks.register("includeJdk") {
|
335 | 334 | ?: error("Could not find include.jdk")
|
336 | 335 |
|
337 | 336 | val isWindows = System.getProperty("os.name").lowercase().contains("win")
|
| 337 | + val isMacOS = System.getProperty("os.name").lowercase().contains("mac") |
338 | 338 | val command = if (isWindows) {
|
339 | 339 | listOf("xcopy", "/E", "/I", "/Q", jdk, target)
|
340 | 340 | } else {
|
341 | 341 | listOf("cp", "-a", jdk, target)
|
342 | 342 | }
|
343 | 343 | ProcessBuilder(command).inheritIO().start().waitFor()
|
| 344 | + |
| 345 | + if(org.gradle.internal.os.OperatingSystem.current().isMacOsX |
| 346 | + && compose.desktop.application.nativeDistributions.macOS.notarization.appleID.isPresent |
| 347 | + ) { |
| 348 | + // Sign the main binary again since changed it. |
| 349 | + val app = layout.buildDirectory.dir("compose/binaries").get().asFileTree.matching { include("**/*.app") } |
| 350 | + .files |
| 351 | + .firstOrNull() |
| 352 | + ?.parentFile ?: error("Could not find Info.plist") |
| 353 | + val signCommand = listOf("codesign", "--timestamp", "--force", "--deep","--options=runtime", "--sign", "Developer ID Application", app.absolutePath) |
| 354 | + ProcessBuilder(signCommand).inheritIO().start().waitFor() |
| 355 | + } |
| 356 | + |
344 | 357 | }
|
345 | 358 | }
|
346 | 359 | tasks.register<Copy>("includeSharedAssets"){
|
@@ -526,6 +539,6 @@ afterEvaluate {
|
526 | 539 | }
|
527 | 540 | tasks.named("createDistributable").configure {
|
528 | 541 | dependsOn("signResources")
|
529 |
| - finalizedBy( "includeJdk","setExecutablePermissions") |
| 542 | + finalizedBy( "includeJdk", "setExecutablePermissions") |
530 | 543 | }
|
531 | 544 | }
|
0 commit comments