Move YK binaries into plugin

This commit is contained in:
Maxim.Kolmakov
2019-03-19 16:26:25 +01:00
parent 85f58bec6f
commit e393bcc0e5
8 changed files with 3 additions and 48 deletions
@@ -112,7 +112,6 @@ class IdeaCommunityProperties extends BaseIdeaProperties {
urlSchemes = ["idea"]
associateIpr = true
fileAssociations = ["java", "groovy", "kt"]
enableYourkitAgentInEAP = false
bundleIdentifier = "com.jetbrains.intellij.ce"
dmgImagePath = "$projectHome/build/conf/ideaCE/mac/images/dmg_background.tiff"
icnsPathForEAP = "$projectHome/build/conf/ideaCE/mac/images/communityEAP.icns"
@@ -90,11 +90,6 @@ abstract class MacDistributionCustomizer {
*/
boolean associateIpr = false
/**
* If {@code true} YourKit agent will be automatically attached when an EAP build of the product starts under macOS. This property is
* taken into account only if {@link ProductProperties#enableYourkitAgentInEAP} is {@code true}.
*/
boolean enableYourkitAgentInEAP = true
/**
* Relative paths to files in macOS distribution which should take 'executable' permissions
@@ -146,17 +146,6 @@ abstract class ProductProperties {
*/
boolean buildSourcesArchive = false
/**
* Path to a directory containing yjpagent*.dll, libyjpagent-linux*.so and libyjpagent.jnilib files, which will be copied to 'bin'
* directories of Windows, Linux and macOS distributions. If {@code null} no agent files will be bundled.
*/
String yourkitAgentBinariesDirectoryPath = null
/**
* If {@code true} YourKit agent will be automatically attached when an EAP build of the product starts. It makes sense only if {@link #yourkitAgentBinariesDirectoryPath} is non-null.
*/
boolean enableYourkitAgentInEAP = false
/**
* Specifies how Maven artifacts for IDE modules should be generated, by default no artifacts are generated.
*/
@@ -476,7 +476,6 @@ idea.fatal.error.notification=disabled
def properties = buildContext.productProperties
checkPaths(properties.brandingResourcePaths, "productProperties.brandingResourcePaths")
checkPaths(properties.additionalIDEPropertiesFilePaths, "productProperties.additionalIDEPropertiesFilePaths")
checkPaths([properties.yourkitAgentBinariesDirectoryPath], "productProperties.yourkitAgentBinariesDirectoryPath")
checkPaths(properties.additionalDirectoriesWithLicenses, "productProperties.additionalDirectoriesWithLicenses")
checkModules(properties.additionalModulesToCompile, "productProperties.additionalModulesToCompile")
@@ -32,11 +32,6 @@ class LinuxDistributionBuilder extends OsSpecificDistributionBuilder {
buildContext.messages.progress("Building distributions for $targetOs.osName")
buildContext.ant.copy(todir: "$unixDistPath/bin") {
fileset(dir: "$buildContext.paths.communityHome/bin/linux")
if (buildContext.productProperties.yourkitAgentBinariesDirectoryPath != null) {
fileset(dir: buildContext.productProperties.yourkitAgentBinariesDirectoryPath) {
include(name: "libyjpagent-linux*.so")
}
}
}
BuildTasksImpl.unpackPty4jNative(buildContext, unixDistPath, "linux")
@@ -117,9 +112,8 @@ class LinuxDistributionBuilder extends OsSpecificDistributionBuilder {
private void generateVMOptions(String unixDistPath) {
JvmArchitecture.values().each {
def yourkitSessionName = buildContext.applicationInfo.isEAP && buildContext.productProperties.enableYourkitAgentInEAP ? buildContext.systemSelector : null
def fileName = "${buildContext.productProperties.baseFileName}${it.fileSuffix}.vmoptions"
def vmOptions = VmOptionsGenerator.computeVmOptions(it, buildContext.applicationInfo.isEAP, buildContext.productProperties, yourkitSessionName) +
def vmOptions = VmOptionsGenerator.computeVmOptions(it, buildContext.applicationInfo.isEAP, buildContext.productProperties) +
" -Dawt.useSystemAAFontSettings=lcd -Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine"
new File(unixDistPath, "bin/$fileName").text = vmOptions.replace(' ', '\n') + "\n"
}
@@ -134,11 +134,6 @@ class MacDistributionBuilder extends OsSpecificDistributionBuilder {
def macCustomizer = customizer
buildContext.ant.copy(todir: "$target/bin") {
fileset(dir: "$buildContext.paths.communityHome/bin/mac")
if (buildContext.productProperties.yourkitAgentBinariesDirectoryPath != null) {
fileset(dir: buildContext.productProperties.yourkitAgentBinariesDirectoryPath) {
include(name: "libyjpagent.jnilib")
}
}
}
buildContext.ant.copy(todir: target) {
@@ -180,9 +175,6 @@ class MacDistributionBuilder extends OsSpecificDistributionBuilder {
new File("$target/bin/idea.properties").text = effectiveProperties.toString()
String ideaVmOptions = "${VmOptionsGenerator.vmOptionsForArch(JvmArchitecture.x64, buildContext.productProperties)} -XX:+UseCompressedOops -Dfile.encoding=UTF-8 ${VmOptionsGenerator.computeCommonVmOptions(buildContext.applicationInfo.isEAP)} -Xverify:none ${buildContext.productProperties.additionalIdeJvmArguments} -XX:ErrorFile=\$USER_HOME/java_error_in_${executable}_%p.log -XX:HeapDumpPath=\$USER_HOME/java_error_in_${executable}.hprof".trim()
if (buildContext.applicationInfo.isEAP && buildContext.productProperties.enableYourkitAgentInEAP && macCustomizer.enableYourkitAgentInEAP) {
ideaVmOptions += " " + VmOptionsGenerator.yourkitOptions(buildContext.systemSelector, "")
}
new File("$target/bin/${executable}.vmoptions").text = ideaVmOptions.split(" ").join("\n")
String classPath = buildContext.bootClassPathJarNames.collect { "\$APP_PACKAGE/Contents/lib/${it}" }.join(":")
@@ -29,11 +29,8 @@ class VmOptionsGenerator {
"-Djdk.http.auth.tunneling.disabledSchemes=\"\" " +
"-XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow"
static String computeVmOptions(JvmArchitecture arch, boolean isEAP, ProductProperties productProperties, String yourkitSessionName = null) {
static String computeVmOptions(JvmArchitecture arch, boolean isEAP, ProductProperties productProperties) {
String options = vmOptionsForArch(arch, productProperties) + " " + computeCommonVmOptions(isEAP)
if (yourkitSessionName != null) {
options += " " + yourkitOptions(yourkitSessionName, arch.fileSuffix)
}
return options
}
@@ -54,9 +51,5 @@ class VmOptionsGenerator {
}
throw new AssertionError(arch)
}
static String yourkitOptions(String sessionName, String fileSuffix) {
"-agentlib:yjpagent$fileSuffix=probe_disable=*,disablealloc,disabletracing,onlylocal,disableexceptiontelemetry,delay=10000,sessionname=$sessionName".trim()
}
}
@@ -42,11 +42,6 @@ class WindowsDistributionBuilder extends OsSpecificDistributionBuilder {
exclude(name: "breakgen*")
}
}
if (buildContext.productProperties.yourkitAgentBinariesDirectoryPath != null) {
fileset(dir: buildContext.productProperties.yourkitAgentBinariesDirectoryPath) {
include(name: "yjpagent*.dll")
}
}
}
BuildTasksImpl.unpackPty4jNative(buildContext, winDistPath, "win")
@@ -171,9 +166,8 @@ class WindowsDistributionBuilder extends OsSpecificDistributionBuilder {
private void generateVMOptions(String winDistPath, Collection<JvmArchitecture> architectures) {
architectures.each {
def yourkitSessionName = buildContext.applicationInfo.isEAP && buildContext.productProperties.enableYourkitAgentInEAP ? buildContext.systemSelector : null
def fileName = "${buildContext.productProperties.baseFileName}${it.fileSuffix}.exe.vmoptions"
def vmOptions = VmOptionsGenerator.computeVmOptions(it, buildContext.applicationInfo.isEAP, buildContext.productProperties, yourkitSessionName)
def vmOptions = VmOptionsGenerator.computeVmOptions(it, buildContext.applicationInfo.isEAP, buildContext.productProperties)
new File(winDistPath, "bin/$fileName").text = vmOptions.replace(' ', '\n') + "\n"
}