Allow to use different JRE version to bundle in distributions for different platforms

This commit is contained in:
Alexander Zolotov
2017-07-05 15:29:50 +03:00
parent 6fe772ed50
commit f00cc0f763
2 changed files with 12 additions and 11 deletions
+3 -2
View File
@@ -4,8 +4,9 @@ def jdkRepo = inJetBrainsNetwork ? 'http://repo.labs.intellij.net/intellij-jdk'
jrePlatformsToDownload(targetOs).each { platform ->
archToDownload(platform).each { arch ->
def jbrexArtifactName = "jbrex8${jdkBuild}_${platform}_$arch"
def jbreArtifactName = "jbre8${jdkBuild}_${platform}_$arch"
def jreBuild = project.ext.has("jreBuild_$platform") ? project.ext["jreBuild_$platform"] : jdkBuild
def jbrexArtifactName = "jbrex8${jreBuild}_${platform}_$arch"
def jbreArtifactName = "jbre8${jreBuild}_${platform}_$arch"
task("downloadJbrex_${platform}_$arch") {
def outputDir = "$project.buildDir/jbre"
@@ -120,7 +120,7 @@ class BundledJreManager {
private File findJreArchive(String osName, JvmArchitecture arch = JvmArchitecture.x64, JreVendor vendor = JreVendor.JetBrains) {
def dependenciesDir = new File(buildContext.paths.communityHome, 'build/dependencies')
def jreDir = new File(dependenciesDir, 'build/jbre')
def jreVersion = getExpectedJreVersion(dependenciesDir)
def jreVersion = getExpectedJreVersion(osName, dependenciesDir)
String suffix = "${jreVersion}_$osName${arch == JvmArchitecture.x32 ? '_x86' : '_x64'}.tar.gz"
String prefix = buildContext.productProperties.toolsJarRequired ? vendor.jreWithToolsJarNamePrefix : vendor.jreNamePrefix
@@ -139,22 +139,22 @@ class BundledJreManager {
return jreArchive
}
private String expectedJreVersion
private String getExpectedJreVersion(File dependenciesDir) {
if (expectedJreVersion == null) {
def dependenciesFile = new File(dependenciesDir, 'build/dependencies.properties')
private Properties dependencyVersions
private String getExpectedJreVersion(String osName, File dependenciesDir) {
if (dependencyVersions == null) {
buildContext.gradle.run('Preparing dependencies file', 'dependenciesFile')
def properties = new Properties()
def stream = dependenciesFile.newInputStream()
def stream = new File(dependenciesDir, 'build/dependencies.properties').newInputStream()
try {
Properties properties = new Properties()
properties.load(stream)
expectedJreVersion = properties.get("jdkBuild", "")
dependencyVersions = properties
}
finally {
stream.close()
}
}
return expectedJreVersion
return dependencyVersions.get("jreBuild_${osName}" as String, dependencyVersions.get("jdkBuild", ""))
}
private enum JreVendor {