mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
build scripts redesign: allow to not build distribution for a specific OS, javadocs added
This commit is contained in:
@@ -33,11 +33,17 @@ abstract class BuildTasks {
|
||||
|
||||
/**
|
||||
* Update search/searchableOptions.xml file in {@code targetModuleName} module output directory
|
||||
* <br>
|
||||
* todo[nik] this is temporary solution until code from layouts.gant files moved to the new builders. After that this method will
|
||||
* be called inside {@link #buildDistributions()}
|
||||
*/
|
||||
abstract void buildSearchableOptions(String targetModuleName, List<String> modulesToIndex, List<String> pathsToLicenses)
|
||||
|
||||
/**
|
||||
* Create a copy of *ApplicationInfo.xml file with substituted __BUILD_NUMBER__ and __BUILD_DATE__ placeholders
|
||||
* <br>
|
||||
* todo[nik] this is temporary solution until code from layouts.gant files moved to the new builders. After that this method will
|
||||
* be called inside {@link #buildDistributions()}
|
||||
* @return path to the copied file
|
||||
*/
|
||||
abstract File patchApplicationInfo()
|
||||
|
||||
@@ -80,10 +80,19 @@ public abstract class ProductProperties {
|
||||
*/
|
||||
abstract String baseArtifactName(String buildNumber)
|
||||
|
||||
/**
|
||||
* @return instance of the class containing properties specific for Windows distribution or {@code null} if the product doesn't have Windows distribution
|
||||
*/
|
||||
abstract WindowsDistributionCustomizer createWindowsCustomizer(String projectHome)
|
||||
|
||||
/**
|
||||
* @return instance of the class containing properties specific for Linux distribution or {@code null} if the product doesn't have Linux distribution
|
||||
*/
|
||||
abstract LinuxDistributionCustomizer createLinuxCustomizer(String projectHome)
|
||||
|
||||
/**
|
||||
* @return instance of the class containing properties specific for Mac OS distribution or {@code null} if the product doesn't have Mac OS distribution
|
||||
*/
|
||||
abstract MacDistributionCustomizer createMacCustomizer(String projectHome)
|
||||
|
||||
boolean setPluginAndIDEVersionInPluginXml = true
|
||||
|
||||
@@ -22,7 +22,7 @@ import org.jetbrains.intellij.build.impl.JvmArchitecture
|
||||
*/
|
||||
abstract class WindowsDistributionCustomizer {
|
||||
/**
|
||||
* Path to *.ico file for Windows distribution
|
||||
* Path to 256x256 *.ico file for Windows distribution
|
||||
*/
|
||||
String icoPath
|
||||
|
||||
|
||||
@@ -19,6 +19,9 @@ import com.intellij.openapi.util.io.FileUtil
|
||||
import org.jetbrains.intellij.build.BuildContext
|
||||
import org.jetbrains.intellij.build.BuildOptions
|
||||
import org.jetbrains.intellij.build.BuildTasks
|
||||
import org.jetbrains.intellij.build.LinuxDistributionCustomizer
|
||||
import org.jetbrains.intellij.build.MacDistributionCustomizer
|
||||
import org.jetbrains.intellij.build.WindowsDistributionCustomizer
|
||||
import org.jetbrains.jps.model.java.JavaResourceRootType
|
||||
import org.jetbrains.jps.model.java.JavaSourceRootType
|
||||
import org.jetbrains.jps.model.module.JpsModule
|
||||
@@ -200,21 +203,30 @@ idea.fatal.error.notification=disabled
|
||||
def propertiesFile = patchIdeaPropertiesFile()
|
||||
|
||||
WindowsDistributionBuilder windowsBuilder = null
|
||||
buildContext.executeStep("Build Windows distribution", BuildOptions.WINDOWS_DISTRIBUTION_STEP, {
|
||||
windowsBuilder = new WindowsDistributionBuilder(buildContext)
|
||||
windowsBuilder.layoutWin(propertiesFile)
|
||||
})
|
||||
def windowsDistributionCustomizer = buildContext.windowsDistributionCustomizer
|
||||
if (windowsDistributionCustomizer != null) {
|
||||
buildContext.executeStep("Build Windows distribution", BuildOptions.WINDOWS_DISTRIBUTION_STEP, {
|
||||
windowsBuilder = new WindowsDistributionBuilder(buildContext, windowsDistributionCustomizer)
|
||||
windowsBuilder.layoutWin(propertiesFile)
|
||||
})
|
||||
}
|
||||
|
||||
LinuxDistributionBuilder linuxBuilder = null
|
||||
buildContext.executeStep("Build Linux distribution", BuildOptions.LINUX_DISTRIBUTION_STEP) {
|
||||
linuxBuilder = new LinuxDistributionBuilder(buildContext)
|
||||
linuxBuilder.layoutUnix(propertiesFile)
|
||||
def linuxDistributionCustomizer = buildContext.linuxDistributionCustomizer
|
||||
if (linuxDistributionCustomizer != null) {
|
||||
buildContext.executeStep("Build Linux distribution", BuildOptions.LINUX_DISTRIBUTION_STEP) {
|
||||
linuxBuilder = new LinuxDistributionBuilder(buildContext, linuxDistributionCustomizer)
|
||||
linuxBuilder.layoutUnix(propertiesFile)
|
||||
}
|
||||
}
|
||||
|
||||
MacDistributionBuilder macBuilder = null
|
||||
buildContext.executeStep("Build Mac OS distribution", BuildOptions.MAC_DISTRIBUTION_STEP) {
|
||||
macBuilder = new MacDistributionBuilder(buildContext)
|
||||
macBuilder.layoutMac(propertiesFile)
|
||||
def macDistributionCustomizer = buildContext.macDistributionCustomizer
|
||||
if (macDistributionCustomizer != null) {
|
||||
buildContext.executeStep("Build Mac OS distribution", BuildOptions.MAC_DISTRIBUTION_STEP) {
|
||||
macBuilder = new MacDistributionBuilder(buildContext, macDistributionCustomizer)
|
||||
macBuilder.layoutMac(propertiesFile)
|
||||
}
|
||||
}
|
||||
|
||||
if (windowsBuilder != null && linuxBuilder != null && macBuilder != null) {
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
package org.jetbrains.intellij.build.impl
|
||||
|
||||
import org.jetbrains.intellij.build.BuildContext
|
||||
import org.jetbrains.intellij.build.LinuxDistributionCustomizer
|
||||
|
||||
/**
|
||||
* @author nik
|
||||
@@ -23,8 +24,10 @@ import org.jetbrains.intellij.build.BuildContext
|
||||
class LinuxDistributionBuilder {
|
||||
private final BuildContext buildContext
|
||||
final String unixDistPath
|
||||
private final LinuxDistributionCustomizer customizer
|
||||
|
||||
LinuxDistributionBuilder(BuildContext buildContext) {
|
||||
LinuxDistributionBuilder(BuildContext buildContext, LinuxDistributionCustomizer customizer) {
|
||||
this.customizer = customizer
|
||||
this.buildContext = buildContext
|
||||
unixDistPath = "$buildContext.paths.buildOutputRoot/dist.unix"
|
||||
}
|
||||
@@ -43,12 +46,12 @@ class LinuxDistributionBuilder {
|
||||
//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")
|
||||
buildContext.ant.copy(file: buildContext.linuxDistributionCustomizer.iconPngPath, tofile: "$unixDistPath/bin/${buildContext.productProperties.baseFileName}.png")
|
||||
buildContext.ant.copy(file: customizer.iconPngPath, tofile: "$unixDistPath/bin/${buildContext.productProperties.baseFileName}.png")
|
||||
|
||||
unixScripts()
|
||||
unixVMOptions()
|
||||
unixReadme()
|
||||
buildContext.linuxDistributionCustomizer.copyAdditionalFiles(buildContext, unixDistPath)
|
||||
customizer.copyAdditionalFiles(buildContext, unixDistPath)
|
||||
buildTarGz(null)
|
||||
def jreDirectoryPath = buildContext.bundledJreManager.extractLinuxJre()
|
||||
if (jreDirectoryPath != null) {
|
||||
@@ -118,10 +121,10 @@ class LinuxDistributionBuilder {
|
||||
}
|
||||
|
||||
private void buildTarGz(String jreDirectoryPath) {
|
||||
def tarRoot = buildContext.linuxDistributionCustomizer.rootDirectoryName(buildContext.buildNumber)
|
||||
def tarRoot = customizer.rootDirectoryName(buildContext.buildNumber)
|
||||
def suffix = jreDirectoryPath != null ? "" : "-no-jdk"
|
||||
def tarPath = "$buildContext.paths.artifacts/${buildContext.productProperties.baseArtifactName(buildContext.buildNumber)}${suffix}.tar"
|
||||
def extraBins = buildContext.linuxDistributionCustomizer.extraExecutables
|
||||
def extraBins = customizer.extraExecutables
|
||||
def paths = [buildContext.paths.distAll, unixDistPath]
|
||||
if (jreDirectoryPath != null) {
|
||||
paths += jreDirectoryPath
|
||||
|
||||
@@ -17,6 +17,7 @@ package org.jetbrains.intellij.build.impl
|
||||
|
||||
import org.jetbrains.intellij.build.BuildContext
|
||||
import org.jetbrains.intellij.build.BuildOptions
|
||||
import org.jetbrains.intellij.build.MacDistributionCustomizer
|
||||
|
||||
import java.time.LocalDate
|
||||
/**
|
||||
@@ -25,14 +26,16 @@ import java.time.LocalDate
|
||||
class MacDistributionBuilder {
|
||||
private final BuildContext buildContext
|
||||
final String macDistPath
|
||||
private final MacDistributionCustomizer customizer
|
||||
|
||||
MacDistributionBuilder(BuildContext buildContext) {
|
||||
MacDistributionBuilder(BuildContext buildContext, MacDistributionCustomizer customizer) {
|
||||
this.customizer = customizer
|
||||
this.buildContext = buildContext
|
||||
macDistPath = "$buildContext.paths.buildOutputRoot/dist.mac"
|
||||
}
|
||||
|
||||
public layoutMac(File ideaPropertiesFile) {
|
||||
def docTypes = buildContext.macDistributionCustomizer.docTypes ?: """
|
||||
def docTypes = customizer.docTypes ?: """
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
@@ -48,7 +51,7 @@ class MacDistributionBuilder {
|
||||
"""
|
||||
Map<String, String> customIdeaProperties = ["idea.jre.check": "$buildContext.productProperties.toolsJarRequired"];
|
||||
layoutMacApp(ideaPropertiesFile, customIdeaProperties, docTypes)
|
||||
buildContext.macDistributionCustomizer.copyAdditionalFiles(buildContext, macDistPath)
|
||||
customizer.copyAdditionalFiles(buildContext, macDistPath)
|
||||
def macZipPath = buildMacZip()
|
||||
if (buildContext.macHostProperties == null) {
|
||||
buildContext.messages.info("A Mac OS build agent isn't configured, dmg artifact won't be produced")
|
||||
@@ -56,7 +59,7 @@ class MacDistributionBuilder {
|
||||
}
|
||||
else {
|
||||
buildContext.executeStep("Build dmg artifact for Mac OS X", BuildOptions.MAC_DMG_STEP) {
|
||||
MacDmgBuilder.signAndBuildDmg(buildContext, buildContext.macHostProperties, macZipPath)
|
||||
MacDmgBuilder.signAndBuildDmg(buildContext, customizer, buildContext.macHostProperties, macZipPath)
|
||||
buildContext.ant.delete(file: macZipPath)
|
||||
}
|
||||
}
|
||||
@@ -64,7 +67,7 @@ class MacDistributionBuilder {
|
||||
|
||||
private void layoutMacApp(File ideaPropertiesFile, Map<String, String> customIdeaProperties, String docTypes) {
|
||||
String target = macDistPath
|
||||
def macCustomizer = buildContext.macDistributionCustomizer
|
||||
def macCustomizer = customizer
|
||||
buildContext.ant.copy(todir: "$target/bin") {
|
||||
fileset(dir: "$buildContext.paths.communityHome/bin/mac")
|
||||
if (buildContext.productProperties.yourkitAgentBinariesDirectoryPath != null) {
|
||||
@@ -82,7 +85,7 @@ class MacDistributionBuilder {
|
||||
String icns = "idea.icns" //todo[nik] rename to more generic name?
|
||||
String helpId = macCustomizer.helpId
|
||||
String helpIcns = "$target/Resources/${helpId}.help/Contents/Resources/Shared/product.icns"
|
||||
String customIcns = buildContext.macDistributionCustomizer.icnsPath
|
||||
String customIcns = customizer.icnsPath
|
||||
if (customIcns != null) {
|
||||
buildContext.ant.delete(file: "$target/Resources/idea.icns")
|
||||
buildContext.ant.copy(file: customIcns, todir: "$target/Resources")
|
||||
@@ -201,9 +204,9 @@ class MacDistributionBuilder {
|
||||
|
||||
private String buildMacZip() {
|
||||
return buildContext.messages.block("Build zip archive for Mac OS") {
|
||||
def extraBins = buildContext.macDistributionCustomizer.extraExecutables
|
||||
def extraBins = customizer.extraExecutables
|
||||
def allPaths = [buildContext.paths.distAll, macDistPath]
|
||||
def zipRoot = buildContext.macDistributionCustomizer.rootDirectoryName(buildContext.applicationInfo, buildContext.buildNumber)
|
||||
def zipRoot = customizer.rootDirectoryName(buildContext.applicationInfo, buildContext.buildNumber)
|
||||
def targetPath = "$buildContext.paths.artifacts/${buildContext.productProperties.baseArtifactName(buildContext.buildNumber)}.mac.zip"
|
||||
buildContext.ant.zip(zipfile: targetPath) {
|
||||
allPaths.each {
|
||||
|
||||
@@ -20,6 +20,7 @@ import org.apache.tools.ant.types.Path
|
||||
import org.apache.tools.ant.util.SplitClassLoader
|
||||
import org.codehaus.gant.GantBuilder
|
||||
import org.jetbrains.intellij.build.BuildContext
|
||||
import org.jetbrains.intellij.build.MacDistributionCustomizer
|
||||
import org.jetbrains.intellij.build.MacHostProperties
|
||||
|
||||
import java.time.LocalDateTime
|
||||
@@ -31,8 +32,10 @@ class MacDmgBuilder {
|
||||
private final String artifactsPath
|
||||
private final MacHostProperties macHostProperties
|
||||
private final String remoteDir
|
||||
private final MacDistributionCustomizer customizer
|
||||
|
||||
private MacDmgBuilder(BuildContext buildContext, String remoteDir, MacHostProperties macHostProperties) {
|
||||
private MacDmgBuilder(BuildContext buildContext, MacDistributionCustomizer customizer, String remoteDir, MacHostProperties macHostProperties) {
|
||||
this.customizer = customizer
|
||||
this.buildContext = buildContext
|
||||
ant = buildContext.ant
|
||||
artifactsPath = buildContext.paths.artifacts
|
||||
@@ -40,14 +43,14 @@ class MacDmgBuilder {
|
||||
this.remoteDir = remoteDir
|
||||
}
|
||||
|
||||
public static void signAndBuildDmg(BuildContext buildContext, MacHostProperties macHostProperties, String macZipPath) {
|
||||
public static void signAndBuildDmg(BuildContext buildContext, MacDistributionCustomizer customizer, MacHostProperties macHostProperties, String macZipPath) {
|
||||
defineTasks(buildContext.ant, "${buildContext.paths.communityHome}/lib")
|
||||
|
||||
String remoteDir = "intellij-builds/${buildContext.fullBuildNumber}"
|
||||
if (remoteDir.toLowerCase().endsWith("snapshot")) {
|
||||
remoteDir += "-" + LocalDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME).replace(':', '-')
|
||||
}
|
||||
def dmgBuilder = new MacDmgBuilder(buildContext, remoteDir, macHostProperties)
|
||||
def dmgBuilder = new MacDmgBuilder(buildContext, customizer, remoteDir, macHostProperties)
|
||||
def jreArchivePath = buildContext.bundledJreManager.findMacJreArchive()
|
||||
if (jreArchivePath != null) {
|
||||
dmgBuilder.doSignAndBuildDmg(macZipPath, jreArchivePath)
|
||||
@@ -73,7 +76,7 @@ class MacDmgBuilder {
|
||||
private void buildDmg(String targetFileName) {
|
||||
buildContext.messages.progress("Building ${targetFileName}.dmg")
|
||||
def dmgImageCopy = "$artifactsPath/${buildContext.fullBuildNumber}.png"
|
||||
def dmgImagePath = (buildContext.applicationInfo.isEAP ? buildContext.macDistributionCustomizer.dmgImagePathForEAP : null) ?: buildContext.macDistributionCustomizer.dmgImagePath
|
||||
def dmgImagePath = (buildContext.applicationInfo.isEAP ? customizer.dmgImagePathForEAP : null) ?: customizer.dmgImagePath
|
||||
ant.copy(file: dmgImagePath, tofile: dmgImageCopy)
|
||||
ftpAction("put") {
|
||||
ant.fileset(file: dmgImageCopy)
|
||||
|
||||
@@ -18,6 +18,7 @@ package org.jetbrains.intellij.build.impl
|
||||
import com.intellij.openapi.util.SystemInfoRt
|
||||
import org.codehaus.gant.GantBuilder
|
||||
import org.jetbrains.intellij.build.BuildContext
|
||||
import org.jetbrains.intellij.build.WindowsDistributionCustomizer
|
||||
|
||||
import static com.intellij.openapi.util.io.FileUtil.toSystemDependentName
|
||||
/**
|
||||
@@ -27,8 +28,10 @@ class WinExeInstallerBuilder {
|
||||
private final BuildContext buildContext
|
||||
private final GantBuilder ant
|
||||
private final String jreDirectoryPath
|
||||
private final WindowsDistributionCustomizer customizer
|
||||
|
||||
WinExeInstallerBuilder(BuildContext buildContext, String jreDirectoryPath) {
|
||||
WinExeInstallerBuilder(BuildContext buildContext, WindowsDistributionCustomizer customizer, String jreDirectoryPath) {
|
||||
this.customizer = customizer
|
||||
this.buildContext = buildContext
|
||||
ant = buildContext.ant
|
||||
this.jreDirectoryPath = jreDirectoryPath
|
||||
@@ -48,7 +51,7 @@ class WinExeInstallerBuilder {
|
||||
ant.mkdir(dir: "$box/bin")
|
||||
ant.mkdir(dir: "$box/nsiconf")
|
||||
|
||||
def bundleJre = buildContext.windowsDistributionCustomizer.bundledJreArchitecture != null
|
||||
def bundleJre = customizer.bundledJreArchitecture != null
|
||||
if (bundleJre && jreDirectoryPath == null) {
|
||||
buildContext.messages.info("JRE won't be bundled with Windows installer because JRE archive is missing")
|
||||
bundleJre = false
|
||||
@@ -85,7 +88,7 @@ class WinExeInstallerBuilder {
|
||||
if (SystemInfoRt.isWindows) {
|
||||
ant.exec(command: "\"${box}/NSIS/makensis.exe\"" +
|
||||
" /DCOMMUNITY_DIR=\"$communityHome\"" +
|
||||
" /DIPR=\"${buildContext.windowsDistributionCustomizer.associateIpr}\"" +
|
||||
" /DIPR=\"${customizer.associateIpr}\"" +
|
||||
" /DOUT_FILE=\"${outFileName}\"" +
|
||||
" /DOUT_DIR=\"${buildContext.paths.artifacts}\"" +
|
||||
" \"${box}/nsiconf/idea.nsi\"")
|
||||
@@ -95,7 +98,7 @@ class WinExeInstallerBuilder {
|
||||
" '-X!AddPluginDir \"${box}/NSIS/Plugins\"'" +
|
||||
" '-X!AddIncludeDir \"${box}/NSIS/Include\"'" +
|
||||
" -DCOMMUNITY_DIR=\"$communityHome\"" +
|
||||
" -DIPR=\"${buildContext.windowsDistributionCustomizer.associateIpr}\"" +
|
||||
" -DIPR=\"${customizer.associateIpr}\"" +
|
||||
" -DOUT_FILE=\"${outFileName}\"" +
|
||||
" -DOUT_DIR=\"${buildContext.paths.artifacts}\"" +
|
||||
" \"${box}/nsiconf/idea.nsi\"")
|
||||
@@ -113,14 +116,14 @@ class WinExeInstallerBuilder {
|
||||
private void prepareConfigurationFiles(String box, String winDistPath) {
|
||||
def productProperties = buildContext.productProperties
|
||||
new File(box, "nsiconf/paths.nsi").text = """
|
||||
!define IMAGES_LOCATION "${toSystemDependentName(buildContext.windowsDistributionCustomizer.installerImagesPath)}"
|
||||
!define IMAGES_LOCATION "${toSystemDependentName(customizer.installerImagesPath)}"
|
||||
!define PRODUCT_PROPERTIES_FILE "${toSystemDependentName("$winDistPath/bin/idea.properties")}"
|
||||
!define PRODUCT_VM_OPTIONS_NAME ${productProperties.baseFileName}*.exe.vmoptions
|
||||
!define PRODUCT_VM_OPTIONS_FILE "${toSystemDependentName("$winDistPath/bin/")}\${PRODUCT_VM_OPTIONS_NAME}"
|
||||
"""
|
||||
|
||||
String fullProductName = productProperties.fullNameIncludingEdition(buildContext.applicationInfo)
|
||||
def extensionsList = buildContext.windowsDistributionCustomizer.fileAssociations
|
||||
def extensionsList = customizer.fileAssociations
|
||||
def fileAssociations = extensionsList.isEmpty() ? "NoAssociation" : extensionsList.join(",")
|
||||
new File(box, "nsiconf/strings.nsi").text = """
|
||||
!define MANUFACTURER "JetBrains"
|
||||
@@ -133,7 +136,7 @@ class WinExeInstallerBuilder {
|
||||
!define PRODUCT_LOGO_FILE "logo.bmp"
|
||||
!define PRODUCT_HEADER_FILE "headerlogo.bmp"
|
||||
!define ASSOCIATION "$fileAssociations"
|
||||
!define UNINSTALL_WEB_PAGE "${buildContext.windowsDistributionCustomizer.uninstallFeedbackPageUrl(buildContext.applicationInfo) ?: "feedback_web_page"}"
|
||||
!define UNINSTALL_WEB_PAGE "${customizer.uninstallFeedbackPageUrl(buildContext.applicationInfo) ?: "feedback_web_page"}"
|
||||
|
||||
; if SHOULD_SET_DEFAULT_INSTDIR != 0 then default installation directory will be directory where highest-numbered IDEA build has been installed
|
||||
; set to 1 for release build
|
||||
|
||||
@@ -17,15 +17,18 @@ package org.jetbrains.intellij.build.impl
|
||||
|
||||
import org.jetbrains.intellij.build.BuildContext
|
||||
import org.jetbrains.intellij.build.BuildOptions
|
||||
import org.jetbrains.intellij.build.WindowsDistributionCustomizer
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRoot
|
||||
/**
|
||||
* @author nik
|
||||
*/
|
||||
class WindowsDistributionBuilder {
|
||||
private final BuildContext buildContext
|
||||
private final WindowsDistributionCustomizer customizer
|
||||
final String winDistPath
|
||||
|
||||
WindowsDistributionBuilder(BuildContext buildContext) {
|
||||
WindowsDistributionBuilder(BuildContext buildContext, WindowsDistributionCustomizer customizer) {
|
||||
this.customizer = customizer
|
||||
this.buildContext = buildContext
|
||||
winDistPath = "$buildContext.paths.buildOutputRoot/dist.win"
|
||||
}
|
||||
@@ -43,19 +46,19 @@ class WindowsDistributionBuilder {
|
||||
buildContext.ant.copy(file: ideaProperties.path, todir: "$winDistPath/bin")
|
||||
buildContext.ant.fixcrlf(file: "$winDistPath/bin/idea.properties", eol: "dos")
|
||||
|
||||
buildContext.ant.copy(file: buildContext.windowsDistributionCustomizer.icoPath, tofile: "$winDistPath/bin/${buildContext.productProperties.baseFileName}.ico")
|
||||
if (buildContext.windowsDistributionCustomizer.includeBatchLaunchers) {
|
||||
buildContext.ant.copy(file: customizer.icoPath, tofile: "$winDistPath/bin/${buildContext.productProperties.baseFileName}.ico")
|
||||
if (customizer.includeBatchLaunchers) {
|
||||
winScripts()
|
||||
}
|
||||
winVMOptions()
|
||||
buildWinLauncher(JvmArchitecture.x32)
|
||||
buildWinLauncher(JvmArchitecture.x64)
|
||||
buildContext.windowsDistributionCustomizer.copyAdditionalFiles(buildContext, winDistPath)
|
||||
customizer.copyAdditionalFiles(buildContext, winDistPath)
|
||||
|
||||
def arch = buildContext.windowsDistributionCustomizer.bundledJreArchitecture
|
||||
def arch = customizer.bundledJreArchitecture
|
||||
def jreDirectoryPath = arch != null ? buildContext.bundledJreManager.extractWinJre(arch) : null
|
||||
buildWinZip(jreDirectoryPath, ".win")
|
||||
if (arch != null && buildContext.windowsDistributionCustomizer.buildZipWithBundledOracleJre) {
|
||||
if (arch != null && customizer.buildZipWithBundledOracleJre) {
|
||||
String oracleJrePath = buildContext.bundledJreManager.extractOracleWinJre(arch)
|
||||
if (oracleJrePath != null) {
|
||||
buildWinZip(oracleJrePath, "-oracle-win")
|
||||
@@ -66,7 +69,7 @@ class WindowsDistributionBuilder {
|
||||
}
|
||||
|
||||
buildContext.executeStep("Build Windows Exe Installer", BuildOptions.WINDOWS_EXE_INSTALLER_STEP) {
|
||||
new WinExeInstallerBuilder(buildContext, jreDirectoryPath).buildInstaller(winDistPath)
|
||||
new WinExeInstallerBuilder(buildContext, customizer, jreDirectoryPath).buildInstaller(winDistPath)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -194,7 +197,7 @@ IDS_VM_OPTIONS=$vmOptions
|
||||
private void buildWinZip(String jreDirectoryPath, String zipNameSuffix) {
|
||||
buildContext.messages.block("Build Windows ${zipNameSuffix}.zip distribution") {
|
||||
def targetPath = "$buildContext.paths.artifacts/${buildContext.productProperties.baseArtifactName(buildContext.buildNumber)}${zipNameSuffix}.zip"
|
||||
def zipPrefix = buildContext.windowsDistributionCustomizer.rootDirectoryName(buildContext.buildNumber)
|
||||
def zipPrefix = customizer.rootDirectoryName(buildContext.buildNumber)
|
||||
def dirs = [buildContext.paths.distAll, winDistPath]
|
||||
if (jreDirectoryPath != null) {
|
||||
dirs += jreDirectoryPath
|
||||
|
||||
Reference in New Issue
Block a user