From fa59c83a0f8bc3381a41ab0fc3f85383527faa25 Mon Sep 17 00:00:00 2001 From: Stefan Lobbenmeier Date: Sun, 9 Feb 2025 17:36:11 +0100 Subject: [PATCH 1/7] Add --win-shortcut-prompt --- .../compose/desktop/application/dsl/PlatformSettings.kt | 1 + .../desktop/application/internal/configureJvmApplication.kt | 1 + .../desktop/application/tasks/AbstractJPackageTask.kt | 5 +++++ 3 files changed, 7 insertions(+) diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/PlatformSettings.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/PlatformSettings.kt index d70ca65adf9..0f3f2fb4048 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/PlatformSettings.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/PlatformSettings.kt @@ -100,6 +100,7 @@ abstract class WindowsPlatformSettings : AbstractPlatformSettings() { var dirChooser: Boolean = true var perUserInstall: Boolean = false var shortcut: Boolean = false + var shortcutPrompt: Boolean = false var menu: Boolean = false get() = field || menuGroup != null var menuGroup: String? = null diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureJvmApplication.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureJvmApplication.kt index 83d51089ef6..2bbc87b9e4f 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureJvmApplication.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureJvmApplication.kt @@ -384,6 +384,7 @@ internal fun JvmApplicationContext.configurePlatformSettings( packageTask.winDirChooser.set(provider { win.dirChooser }) packageTask.winPerUserInstall.set(provider { win.perUserInstall }) packageTask.winShortcut.set(provider { win.shortcut }) + packageTask.winShortcutPrompt.set(provider { win.shortcutPrompt }) packageTask.winMenu.set(provider { win.menu }) packageTask.winMenuGroup.set(provider { win.menuGroup }) packageTask.winUpgradeUuid.set(provider { win.upgradeUuid }) diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt index 20c3926cd9c..b473c266eac 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt @@ -216,6 +216,10 @@ abstract class AbstractJPackageTask @Inject constructor( @get:Optional val winShortcut: Property = objects.nullableProperty() + @get:Input + @get:Optional + val winShortcutPrompt: Property = objects.nullableProperty() + @get:Input @get:Optional val winMenu: Property = objects.nullableProperty() @@ -449,6 +453,7 @@ abstract class AbstractJPackageTask @Inject constructor( cliArg("--win-dir-chooser", winDirChooser) cliArg("--win-per-user-install", winPerUserInstall) cliArg("--win-shortcut", winShortcut) + cliArg("--win-shortcut-prompt", winShortcutPrompt) cliArg("--win-menu", winMenu) cliArg("--win-menu-group", winMenuGroup) cliArg("--win-upgrade-uuid", winUpgradeUuid) From 9c37dfe8f64e33b252047aa50d301996c008696e Mon Sep 17 00:00:00 2001 From: Stefan Lobbenmeier Date: Sun, 9 Feb 2025 17:38:09 +0100 Subject: [PATCH 2/7] Add --win-update-url --- .../compose/desktop/application/dsl/PlatformSettings.kt | 1 + .../desktop/application/internal/configureJvmApplication.kt | 1 + .../desktop/application/tasks/AbstractJPackageTask.kt | 5 +++++ 3 files changed, 7 insertions(+) diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/PlatformSettings.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/PlatformSettings.kt index 0f3f2fb4048..5e3529a689c 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/PlatformSettings.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/PlatformSettings.kt @@ -104,6 +104,7 @@ abstract class WindowsPlatformSettings : AbstractPlatformSettings() { var menu: Boolean = false get() = field || menuGroup != null var menuGroup: String? = null + var updateUrl: String? = null var upgradeUuid: String? = null var msiPackageVersion: String? = null var exePackageVersion: String? = null diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureJvmApplication.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureJvmApplication.kt index 2bbc87b9e4f..14953982caa 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureJvmApplication.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureJvmApplication.kt @@ -387,6 +387,7 @@ internal fun JvmApplicationContext.configurePlatformSettings( packageTask.winShortcutPrompt.set(provider { win.shortcutPrompt }) packageTask.winMenu.set(provider { win.menu }) packageTask.winMenuGroup.set(provider { win.menuGroup }) + packageTask.winUpdateUrl.set(provider { win.updateUrl }) packageTask.winUpgradeUuid.set(provider { win.upgradeUuid }) packageTask.iconFile.set(win.iconFile.orElse(defaultResources.get { windowsIcon })) packageTask.installationPath.set(win.installationPath) diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt index b473c266eac..44095627814 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt @@ -228,6 +228,10 @@ abstract class AbstractJPackageTask @Inject constructor( @get:Optional val winMenuGroup: Property = objects.nullableProperty() + @get:Input + @get:Optional + val winUpdateUrl: Property = objects.nullableProperty() + @get:Input @get:Optional val winUpgradeUuid: Property = objects.nullableProperty() @@ -456,6 +460,7 @@ abstract class AbstractJPackageTask @Inject constructor( cliArg("--win-shortcut-prompt", winShortcutPrompt) cliArg("--win-menu", winMenu) cliArg("--win-menu-group", winMenuGroup) + cliArg("--win-update-url", winUpdateUrl) cliArg("--win-upgrade-uuid", winUpgradeUuid) } OS.MacOS -> {} From bc24f125e12f08b2b871a778e51149edc0d93db9 Mon Sep 17 00:00:00 2001 From: Stefan Lobbenmeier Date: Sun, 9 Feb 2025 17:41:39 +0100 Subject: [PATCH 3/7] Add --linux-package-deps --- .../compose/desktop/application/dsl/PlatformSettings.kt | 1 + .../desktop/application/internal/configureJvmApplication.kt | 1 + .../desktop/application/tasks/AbstractJPackageTask.kt | 5 +++++ 3 files changed, 7 insertions(+) diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/PlatformSettings.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/PlatformSettings.kt index 5e3529a689c..455002a595a 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/PlatformSettings.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/PlatformSettings.kt @@ -85,6 +85,7 @@ open class InfoPlistSettings { abstract class LinuxPlatformSettings : AbstractPlatformSettings() { var shortcut: Boolean = false + var packageDeps: String? = null var packageName: String? = null var appRelease: String? = null var appCategory: String? = null diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureJvmApplication.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureJvmApplication.kt index 14953982caa..ec11deed5dc 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureJvmApplication.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureJvmApplication.kt @@ -371,6 +371,7 @@ internal fun JvmApplicationContext.configurePlatformSettings( packageTask.linuxAppRelease.set(provider { linux.appRelease }) packageTask.linuxDebMaintainer.set(provider { linux.debMaintainer }) packageTask.linuxMenuGroup.set(provider { linux.menuGroup }) + packageTask.linuxPackageDeps.set(provider { linux.packageDeps }) packageTask.linuxPackageName.set(provider { linux.packageName }) packageTask.linuxRpmLicenseType.set(provider { linux.rpmLicenseType }) packageTask.iconFile.set(linux.iconFile.orElse(defaultResources.get { linuxIcon })) diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt index 44095627814..6009dd9a7e5 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt @@ -132,6 +132,10 @@ abstract class AbstractJPackageTask @Inject constructor( @get:Optional val linuxShortcut: Property = objects.nullableProperty() + @get:Input + @get:Optional + val linuxPackageDeps: Property = objects.nullableProperty() + @get:Input @get:Optional val linuxPackageName: Property = objects.nullableProperty() @@ -446,6 +450,7 @@ abstract class AbstractJPackageTask @Inject constructor( when (currentOS) { OS.Linux -> { cliArg("--linux-shortcut", linuxShortcut) + cliArg("--linux-package-deps", linuxPackageDeps) cliArg("--linux-package-name", linuxPackageName) cliArg("--linux-app-release", linuxAppRelease) cliArg("--linux-app-category", linuxAppCategory) From 982604e7c6c2b0c941883c8214131906e3d4fa21 Mon Sep 17 00:00:00 2001 From: Stefan Lobbenmeier Date: Sun, 9 Feb 2025 17:53:27 +0100 Subject: [PATCH 4/7] Add --mac-dmg-content --- .../desktop/application/dsl/PlatformSettings.kt | 2 ++ .../application/internal/configureJvmApplication.kt | 1 + .../desktop/application/tasks/AbstractJPackageTask.kt | 10 +++++++++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/PlatformSettings.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/PlatformSettings.kt index 455002a595a..c0243352cb8 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/PlatformSettings.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/PlatformSettings.kt @@ -36,6 +36,8 @@ abstract class AbstractMacOSPlatformSettings : AbstractPlatformSettings() { var appCategory: String? = null var minimumSystemVersion: String? = null + var dmgContents = ArrayList() + /** * An application's unique identifier across Apple's ecosystem. diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureJvmApplication.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureJvmApplication.kt index ec11deed5dc..cc5a9140263 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureJvmApplication.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/internal/configureJvmApplication.kt @@ -397,6 +397,7 @@ internal fun JvmApplicationContext.configurePlatformSettings( } OS.MacOS -> { app.nativeDistributions.macOS.also { mac -> + packageTask.macDmgContents.set(provider { mac.dmgContents }) packageTask.macPackageName.set(provider { mac.packageName }) packageTask.macDockName.set( if (mac.setDockNameSameAsPackageName) diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt index 6009dd9a7e5..abaccef1919 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt @@ -204,6 +204,10 @@ abstract class AbstractJPackageTask @Inject constructor( @get:PathSensitive(PathSensitivity.ABSOLUTE) val macRuntimeProvisioningProfile: RegularFileProperty = objects.fileProperty() + @get:Input + @get:Optional + val macDmgContents: ListProperty = objects.listProperty(String::class.java) + @get:Input @get:Optional val winConsole: Property = objects.nullableProperty() @@ -468,7 +472,11 @@ abstract class AbstractJPackageTask @Inject constructor( cliArg("--win-update-url", winUpdateUrl) cliArg("--win-upgrade-uuid", winUpgradeUuid) } - OS.MacOS -> {} + OS.MacOS -> { + macDmgContents.get().forEach { + cliArg("--mac-dmg-content", it) + } + } } } From 06768de1880b82bb560eaa91b2737102bae7013c Mon Sep 17 00:00:00 2001 From: Stefan Lobbenmeier Date: Fri, 14 Feb 2025 16:27:07 +0100 Subject: [PATCH 5/7] Check jvm major version before adding --mac-dmg-content cli arg --- .../desktop/application/tasks/AbstractJPackageTask.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt index abaccef1919..945860249c1 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt @@ -473,9 +473,12 @@ abstract class AbstractJPackageTask @Inject constructor( cliArg("--win-upgrade-uuid", winUpgradeUuid) } OS.MacOS -> { - macDmgContents.get().forEach { - cliArg("--mac-dmg-content", it) + if (jvmRuntimeInfo.majorVersion >= 18) { + macDmgContents.get().forEach { + cliArg("--mac-dmg-content", it) + } } + } } } From b646e874d5b8e33684e1f0b8069ccb9ee5d99550 Mon Sep 17 00:00:00 2001 From: Stefan Lobbenmeier Date: Fri, 14 Feb 2025 16:28:59 +0100 Subject: [PATCH 6/7] Actually --mac-dmg-content is supposed to be a comma separated list like --linux-package-deps, so accept any string for now --- .../compose/desktop/application/dsl/PlatformSettings.kt | 2 +- .../desktop/application/tasks/AbstractJPackageTask.kt | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/PlatformSettings.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/PlatformSettings.kt index c0243352cb8..3396ebababe 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/PlatformSettings.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/dsl/PlatformSettings.kt @@ -36,7 +36,7 @@ abstract class AbstractMacOSPlatformSettings : AbstractPlatformSettings() { var appCategory: String? = null var minimumSystemVersion: String? = null - var dmgContents = ArrayList() + var dmgContents: String? = null /** diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt index 945860249c1..f6c4b6edc32 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt @@ -206,7 +206,7 @@ abstract class AbstractJPackageTask @Inject constructor( @get:Input @get:Optional - val macDmgContents: ListProperty = objects.listProperty(String::class.java) + val macDmgContents: Property = objects.nullableProperty() @get:Input @get:Optional @@ -474,11 +474,8 @@ abstract class AbstractJPackageTask @Inject constructor( } OS.MacOS -> { if (jvmRuntimeInfo.majorVersion >= 18) { - macDmgContents.get().forEach { - cliArg("--mac-dmg-content", it) - } + cliArg("--mac-dmg-content", macDmgContents) } - } } } From 7a8fecb6d3b3fa3ef4c47eb2ce453949cea6c684 Mon Sep 17 00:00:00 2001 From: Stefan Lobbenmeier Date: Fri, 14 Feb 2025 16:31:19 +0100 Subject: [PATCH 7/7] Add warning when --mac-dmg-content is used on unsupported jdk version --- .../desktop/application/tasks/AbstractJPackageTask.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt index f6c4b6edc32..f67d8176426 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/desktop/application/tasks/AbstractJPackageTask.kt @@ -473,8 +473,12 @@ abstract class AbstractJPackageTask @Inject constructor( cliArg("--win-upgrade-uuid", winUpgradeUuid) } OS.MacOS -> { - if (jvmRuntimeInfo.majorVersion >= 18) { - cliArg("--mac-dmg-content", macDmgContents) + if (macDmgContents.isPresent) { + if (jvmRuntimeInfo.majorVersion >= 18) { + cliArg("--mac-dmg-content", macDmgContents) + } else { + logger.warn("Option --mac-dmg-content is only supported from jdk 18") + } } } }