|
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