| 
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