mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
build scripts: allow products to define special icons for EAP builds
...under Windows and Linux (IDEA-192484).
This commit is contained in:
+5
@@ -27,6 +27,11 @@ abstract class LinuxDistributionCustomizer {
|
||||
*/
|
||||
String iconPngPath
|
||||
|
||||
/**
|
||||
* Path to png file for EAP builds (if {@code null} {@link #iconPngPath} will be used)
|
||||
*/
|
||||
String iconPngPathForEAP = null
|
||||
|
||||
/**
|
||||
* Relative paths to files in Linux distribution which should take 'executable' permissions
|
||||
*/
|
||||
|
||||
+5
@@ -27,6 +27,11 @@ abstract class WindowsDistributionCustomizer {
|
||||
*/
|
||||
String icoPath
|
||||
|
||||
/**
|
||||
* Path to ico file for EAP builds (if {@code null} {@link #icoPath} will be used)
|
||||
*/
|
||||
String icoPathForEAP = null
|
||||
|
||||
/**
|
||||
* If {@code true} *.bat files (productName.bat and inspect.bat) will be included into the distribution
|
||||
*/
|
||||
|
||||
@@ -407,9 +407,11 @@ idea.fatal.error.notification=disabled
|
||||
|
||||
def winCustomizer = buildContext.windowsDistributionCustomizer
|
||||
checkPaths([winCustomizer?.icoPath], "productProperties.windowsCustomizer.icoPath")
|
||||
checkPaths([winCustomizer?.icoPathForEAP], "productProperties.windowsCustomizer.icoPathForEAP")
|
||||
checkPaths([winCustomizer?.installerImagesPath], "productProperties.windowsCustomizer.installerImagesPath")
|
||||
|
||||
checkPaths([buildContext.linuxDistributionCustomizer?.iconPngPath], "productProperties.linuxCustomizer.iconPngPath")
|
||||
checkPaths([buildContext.linuxDistributionCustomizer?.iconPngPathForEAP], "productProperties.linuxCustomizer.iconPngPathForEAP")
|
||||
|
||||
def macCustomizer = buildContext.macDistributionCustomizer
|
||||
if (macCustomizer != null) {
|
||||
|
||||
+6
-4
@@ -15,11 +15,13 @@ import org.jetbrains.intellij.build.LinuxDistributionCustomizer
|
||||
class LinuxDistributionBuilder extends OsSpecificDistributionBuilder {
|
||||
private final LinuxDistributionCustomizer customizer
|
||||
private final File ideaProperties
|
||||
private final String iconPngPath
|
||||
|
||||
LinuxDistributionBuilder(BuildContext buildContext, LinuxDistributionCustomizer customizer, File ideaProperties) {
|
||||
super(BuildOptions.OS_LINUX, "Linux", buildContext)
|
||||
this.customizer = customizer
|
||||
this.ideaProperties = ideaProperties
|
||||
iconPngPath = (buildContext.applicationInfo.isEAP ? customizer.iconPngPathForEAP : null) ?: customizer.iconPngPath
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -42,8 +44,8 @@ class LinuxDistributionBuilder extends OsSpecificDistributionBuilder {
|
||||
//todo[nik] converting line separators to unix-style make sense only when building Linux distributions under Windows on a local machine;
|
||||
// for real installers we need to checkout all text files with 'lf' separators anyway
|
||||
buildContext.ant.fixcrlf(file: "$unixDistPath/bin/idea.properties", eol: "unix")
|
||||
if (customizer.iconPngPath != null) {
|
||||
buildContext.ant.copy(file: customizer.iconPngPath, tofile: "$unixDistPath/bin/${buildContext.productProperties.baseFileName}.png")
|
||||
if (iconPngPath != null) {
|
||||
buildContext.ant.copy(file: iconPngPath, tofile: "$unixDistPath/bin/${buildContext.productProperties.baseFileName}.png")
|
||||
}
|
||||
generateScripts(unixDistPath)
|
||||
generateVMOptions(unixDistPath)
|
||||
@@ -175,7 +177,7 @@ class LinuxDistributionBuilder extends OsSpecificDistributionBuilder {
|
||||
private void buildSnapPackage(String jreDirectoryPath, String unixDistPath) {
|
||||
if (!buildContext.options.buildUnixSnaps || customizer.snapName == null) return
|
||||
|
||||
if (StringUtil.isEmpty(customizer.iconPngPath)) buildContext.messages.error("'iconPngPath' not set")
|
||||
if (StringUtil.isEmpty(iconPngPath)) buildContext.messages.error("'iconPngPath' not set")
|
||||
if (StringUtil.isEmpty(customizer.snapDescription)) buildContext.messages.error("'snapDescription' not set")
|
||||
|
||||
String snapDir = "${buildContext.paths.buildOutputRoot}/dist.snap"
|
||||
@@ -195,7 +197,7 @@ class LinuxDistributionBuilder extends OsSpecificDistributionBuilder {
|
||||
}
|
||||
}
|
||||
|
||||
buildContext.ant.copy(file: customizer.iconPngPath, tofile: "${snapDir}/${customizer.snapName}.png")
|
||||
buildContext.ant.copy(file: iconPngPath, tofile: "${snapDir}/${customizer.snapName}.png")
|
||||
|
||||
def snapcraftTemplate = "${buildContext.paths.communityHome}/platform/build-scripts/resources/linux/snap/snapcraft-template.yaml"
|
||||
def version = "${buildContext.applicationInfo.majorVersion}.${buildContext.applicationInfo.minorVersion}${buildContext.applicationInfo.isEAP ? "-EAP" : ""}"
|
||||
|
||||
+4
-2
@@ -30,12 +30,14 @@ class WindowsDistributionBuilder extends OsSpecificDistributionBuilder {
|
||||
private final WindowsDistributionCustomizer customizer
|
||||
private final File ideaProperties
|
||||
private final File patchedApplicationInfo
|
||||
private final String icoPath
|
||||
|
||||
WindowsDistributionBuilder(BuildContext buildContext, WindowsDistributionCustomizer customizer, File ideaProperties, File patchedApplicationInfo) {
|
||||
super(BuildOptions.OS_WINDOWS, "Windows", buildContext)
|
||||
this.patchedApplicationInfo = patchedApplicationInfo
|
||||
this.customizer = customizer
|
||||
this.ideaProperties = ideaProperties
|
||||
icoPath = (buildContext.applicationInfo.isEAP ? customizer.icoPathForEAP : null) ?: customizer.icoPath
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -61,8 +63,8 @@ class WindowsDistributionBuilder extends OsSpecificDistributionBuilder {
|
||||
buildContext.ant.copy(file: ideaProperties.path, todir: "$winDistPath/bin")
|
||||
buildContext.ant.fixcrlf(file: "$winDistPath/bin/idea.properties", eol: "dos")
|
||||
|
||||
if (customizer.icoPath != null) {
|
||||
buildContext.ant.copy(file: customizer.icoPath, tofile: "$winDistPath/bin/${buildContext.productProperties.baseFileName}.ico")
|
||||
if (icoPath != null) {
|
||||
buildContext.ant.copy(file: icoPath, tofile: "$winDistPath/bin/${buildContext.productProperties.baseFileName}.ico")
|
||||
}
|
||||
if (customizer.includeBatchLaunchers) {
|
||||
generateScripts(winDistPath)
|
||||
|
||||
Reference in New Issue
Block a user