Skip to content

Add missing jpackage options #5227

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ abstract class AbstractMacOSPlatformSettings : AbstractPlatformSettings() {
var appCategory: String? = null
var minimumSystemVersion: String? = null

var dmgContents: String? = null


/**
* An application's unique identifier across Apple's ecosystem.
Expand Down Expand Up @@ -85,6 +87,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
Expand All @@ -100,9 +103,11 @@ 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
var updateUrl: String? = null
var upgradeUuid: String? = null
var msiPackageVersion: String? = null
var exePackageVersion: String? = null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 }))
Expand All @@ -384,8 +385,10 @@ 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.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)
Expand All @@ -394,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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,10 @@ abstract class AbstractJPackageTask @Inject constructor(
@get:Optional
val linuxShortcut: Property<Boolean?> = objects.nullableProperty()

@get:Input
@get:Optional
val linuxPackageDeps: Property<String?> = objects.nullableProperty()

@get:Input
@get:Optional
val linuxPackageName: Property<String?> = objects.nullableProperty()
Expand Down Expand Up @@ -200,6 +204,10 @@ abstract class AbstractJPackageTask @Inject constructor(
@get:PathSensitive(PathSensitivity.ABSOLUTE)
val macRuntimeProvisioningProfile: RegularFileProperty = objects.fileProperty()

@get:Input
@get:Optional
val macDmgContents: Property<String?> = objects.nullableProperty()

@get:Input
@get:Optional
val winConsole: Property<Boolean?> = objects.nullableProperty()
Expand All @@ -216,6 +224,10 @@ abstract class AbstractJPackageTask @Inject constructor(
@get:Optional
val winShortcut: Property<Boolean?> = objects.nullableProperty()

@get:Input
@get:Optional
val winShortcutPrompt: Property<Boolean?> = objects.nullableProperty()

@get:Input
@get:Optional
val winMenu: Property<Boolean?> = objects.nullableProperty()
Expand All @@ -224,6 +236,10 @@ abstract class AbstractJPackageTask @Inject constructor(
@get:Optional
val winMenuGroup: Property<String?> = objects.nullableProperty()

@get:Input
@get:Optional
val winUpdateUrl: Property<String?> = objects.nullableProperty()

@get:Input
@get:Optional
val winUpgradeUuid: Property<String?> = objects.nullableProperty()
Expand Down Expand Up @@ -438,6 +454,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)
Expand All @@ -449,11 +466,21 @@ 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-update-url", winUpdateUrl)
cliArg("--win-upgrade-uuid", winUpgradeUuid)
}
OS.MacOS -> {}
OS.MacOS -> {
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")
}
}
}
}
}

Expand Down