diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/LinuxDistributionCustomizer.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/LinuxDistributionCustomizer.groovy index 1ceb97315d42..b1d9a9737613 100644 --- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/LinuxDistributionCustomizer.groovy +++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/LinuxDistributionCustomizer.groovy @@ -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 */ diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/WindowsDistributionCustomizer.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/WindowsDistributionCustomizer.groovy index 1f38913dd213..0393eb5b2637 100644 --- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/WindowsDistributionCustomizer.groovy +++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/WindowsDistributionCustomizer.groovy @@ -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 */ diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/BuildTasksImpl.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/BuildTasksImpl.groovy index 8a0d8632e0dc..5cee63dc8385 100644 --- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/BuildTasksImpl.groovy +++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/BuildTasksImpl.groovy @@ -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) { diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/LinuxDistributionBuilder.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/LinuxDistributionBuilder.groovy index f9ae10533a30..17f34f1c0f70 100644 --- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/LinuxDistributionBuilder.groovy +++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/LinuxDistributionBuilder.groovy @@ -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" : ""}" diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/WindowsDistributionBuilder.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/WindowsDistributionBuilder.groovy index 10d53608bc99..369ef089fadd 100644 --- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/WindowsDistributionBuilder.groovy +++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/WindowsDistributionBuilder.groovy @@ -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)