From f00cc0f76311d74f78b77700bc32e08f86208e9b Mon Sep 17 00:00:00 2001 From: Alexander Zolotov Date: Tue, 4 Jul 2017 19:31:30 +0300 Subject: [PATCH] Allow to use different JRE version to bundle in distributions for different platforms --- build/dependencies/setupJbre.gradle | 5 +++-- .../build/impl/BundledJreManager.groovy | 18 +++++++++--------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/build/dependencies/setupJbre.gradle b/build/dependencies/setupJbre.gradle index e9501e9b04e5..188a3a852131 100644 --- a/build/dependencies/setupJbre.gradle +++ b/build/dependencies/setupJbre.gradle @@ -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" diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/BundledJreManager.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/BundledJreManager.groovy index a7b713965c04..426258d04802 100644 --- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/BundledJreManager.groovy +++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/BundledJreManager.groovy @@ -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 {