diff --git a/build/groovy/org/jetbrains/intellij/build/BuildContext.groovy b/build/groovy/org/jetbrains/intellij/build/BuildContext.groovy index 5a04b403a0a3..c4c20b20f765 100644 --- a/build/groovy/org/jetbrains/intellij/build/BuildContext.groovy +++ b/build/groovy/org/jetbrains/intellij/build/BuildContext.groovy @@ -66,6 +66,8 @@ abstract class BuildContext { abstract boolean includeBreakGenLibraries() + abstract String getAdditionalJvmArguments() + abstract void notifyArtifactBuilt(String artifactPath) abstract File findApplicationInfoInSources() diff --git a/build/groovy/org/jetbrains/intellij/build/impl/BuildContextImpl.groovy b/build/groovy/org/jetbrains/intellij/build/impl/BuildContextImpl.groovy index 9a838a58fa15..462928272916 100644 --- a/build/groovy/org/jetbrains/intellij/build/impl/BuildContextImpl.groovy +++ b/build/groovy/org/jetbrains/intellij/build/impl/BuildContextImpl.groovy @@ -208,6 +208,24 @@ class BuildContextImpl extends BuildContext { productLayout.additionalPlatformModules.containsKey("java-runtime") } + @Override + String getAdditionalJvmArguments() { + String jvmArgs + if (productProperties.platformPrefix != null +//todo[nik] remove later. This is added to keep the current behavior (platform prefix for CE is set in MainImpl anyway) + && productProperties.platformPrefix != "Idea") { + jvmArgs = "-Didea.platform.prefix=${productProperties.platformPrefix}" + } + else { + jvmArgs = "" + } + jvmArgs += " $productProperties.additionalIdeJvmArguments".trim() + if (productProperties.toolsJarRequired) { + jvmArgs += " -Didea.jre.check=true" + } + return jvmArgs.trim() + } + @Override void notifyArtifactBuilt(String artifactPath) { if (!underTeamCity) return diff --git a/build/groovy/org/jetbrains/intellij/build/impl/LinuxDistributionBuilder.groovy b/build/groovy/org/jetbrains/intellij/build/impl/LinuxDistributionBuilder.groovy index 23c8cd235d6d..badd29c54816 100644 --- a/build/groovy/org/jetbrains/intellij/build/impl/LinuxDistributionBuilder.groovy +++ b/build/groovy/org/jetbrains/intellij/build/impl/LinuxDistributionBuilder.groovy @@ -76,20 +76,8 @@ class LinuxDistributionBuilder { String classPath = "CLASSPATH=\"\$IDE_HOME/lib/${buildContext.bootClassPathJarNames[0]}\"\n" classPath += buildContext.bootClassPathJarNames[1..-1].collect { "CLASSPATH=\"\$CLASSPATH:\$IDE_HOME/lib/${it}\"" }.join("\n") - String jvmArgs - if (buildContext.productProperties.platformPrefix != null -//todo[nik] remove later. This is added to keep current behavior (platform prefix for CE is set in MainImpl anyway) - && buildContext.productProperties.platformPrefix != "Idea") { - jvmArgs = "-Didea.platform.prefix=${buildContext.productProperties.platformPrefix}" - } - else { - jvmArgs = "" - } - - jvmArgs = "$jvmArgs $buildContext.productProperties.additionalIdeJvmArguments".trim() if (buildContext.productProperties.toolsJarRequired) { classPath += "\nCLASSPATH=\"\$CLASSPATH:\$JDK/lib/tools.jar\"" - jvmArgs = "$jvmArgs -Didea.jre.check=true".trim() } buildContext.ant.copy(todir: "${unixDistPath}/bin") { @@ -101,7 +89,7 @@ class LinuxDistributionBuilder { filter(token: "vm_options", value: vmOptionsFileName) filter(token: "isEap", value: buildContext.applicationInfo.isEAP) filter(token: "system_selector", value: buildContext.systemSelector) - filter(token: "ide_jvm_args", value: jvmArgs) + filter(token: "ide_jvm_args", value: buildContext.additionalJvmArguments) filter(token: "class_path", value: classPath) filter(token: "script_name", value: name) } diff --git a/build/groovy/org/jetbrains/intellij/build/impl/WindowsDistributionBuilder.groovy b/build/groovy/org/jetbrains/intellij/build/impl/WindowsDistributionBuilder.groovy index 937443949483..774f54928f64 100644 --- a/build/groovy/org/jetbrains/intellij/build/impl/WindowsDistributionBuilder.groovy +++ b/build/groovy/org/jetbrains/intellij/build/impl/WindowsDistributionBuilder.groovy @@ -18,10 +18,9 @@ package org.jetbrains.intellij.build.impl import org.jetbrains.intellij.build.BuildContext import org.jetbrains.intellij.build.BuildOptions import org.jetbrains.intellij.build.JvmArchitecture -import org.jetbrains.intellij.build.ProductModulesLayout import org.jetbrains.intellij.build.WindowsDistributionCustomizer -import org.jetbrains.jps.model.module.JpsModule import org.jetbrains.jps.model.module.JpsModuleSourceRoot + /** * @author nik */ @@ -90,7 +89,6 @@ class WindowsDistributionBuilder { String classPath = "SET CLASS_PATH=%IDE_HOME%\\lib\\${buildContext.bootClassPathJarNames[0]}\n" classPath += buildContext.bootClassPathJarNames[1..-1].collect { "SET CLASS_PATH=%CLASS_PATH%;%IDE_HOME%\\lib\\$it" }.join("\n") - def jvmArgs = getAdditionalJvmArguments() if (buildContext.productProperties.toolsJarRequired) { classPath += "\nSET CLASS_PATH=%CLASS_PATH%;%JDK%\\lib\\tools.jar" } @@ -105,7 +103,7 @@ class WindowsDistributionBuilder { filter(token: "vm_options", value: vmOptionsFileName) filter(token: "isEap", value: buildContext.applicationInfo.isEAP) filter(token: "system_selector", value: buildContext.systemSelector) - filter(token: "ide_jvm_args", value: jvmArgs) + filter(token: "ide_jvm_args", value: buildContext.additionalJvmArguments) filter(token: "class_path", value: classPath) filter(token: "script_name", value: batName) } @@ -124,14 +122,6 @@ class WindowsDistributionBuilder { buildContext.ant.fixcrlf(srcdir: "$winDistPath/bin", includes: "*.bat", eol: "dos") } - private String getAdditionalJvmArguments() { - def jvmArgs = buildContext.productProperties.additionalIdeJvmArguments - if (buildContext.productProperties.toolsJarRequired) { - return "$jvmArgs -Didea.jre.check=true".trim() - } - return jvmArgs - } - //todo[nik] rename private void winVMOptions() { JvmArchitecture.values().each { @@ -149,17 +139,7 @@ class WindowsDistributionBuilder { def launcherPropertiesPath = "${buildContext.paths.temp}/launcher${arch.fileSuffix}.properties" def upperCaseProductName = buildContext.applicationInfo.upperCaseProductName def lowerCaseProductName = buildContext.applicationInfo.shortProductName.toLowerCase() - String vmOptions - if (buildContext.productProperties.platformPrefix != null -//todo[nik] remove later. This is added to keep current behavior (platform prefix for CE is set in MainImpl anyway) - && buildContext.productProperties.platformPrefix != "Idea") { - vmOptions = "-Didea.platform.prefix=${buildContext.productProperties.platformPrefix}" - } - else { - vmOptions = "" - } - - vmOptions = "$vmOptions -Didea.paths.selector=${buildContext.systemSelector} ${getAdditionalJvmArguments()}".trim() + String vmOptions = "$buildContext.additionalJvmArguments -Didea.paths.selector=${buildContext.systemSelector}".trim() def productName = buildContext.applicationInfo.upperCaseProductName //todo[nik] use '.productName' instead String jdkEnvVarSuffix = arch == JvmArchitecture.x64 ? "_64" : "";