build scripts: set custom idea.platform.prefix in bat-file, duplication removed

This commit is contained in:
nik
2016-07-21 12:58:37 +03:00
parent 57fa83a4c0
commit 137b925a85
4 changed files with 24 additions and 36 deletions
@@ -66,6 +66,8 @@ abstract class BuildContext {
abstract boolean includeBreakGenLibraries()
abstract String getAdditionalJvmArguments()
abstract void notifyArtifactBuilt(String artifactPath)
abstract File findApplicationInfoInSources()
@@ -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
@@ -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)
}
@@ -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" : "";