mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[pycharm] enable appcds for PyCharm PY-75476
GitOrigin-RevId: d20fd55316fb6049f5f1effe6e47248aa5a46555
This commit is contained in:
committed by
intellij-monorepo-bot
parent
07ce79c60f
commit
29ca865bc6
@@ -104,6 +104,17 @@ abstract class ProductProperties {
|
||||
*/
|
||||
var classLoader: String? = "com.intellij.util.lang.PathClassLoader"
|
||||
|
||||
|
||||
/**
|
||||
* If `true`, the Class Data Sharing (CDS) feature will be enabled for the JVM and system.class.loader will be disabled.
|
||||
*
|
||||
* When enabled, the JVM will generate a shared archive file for the application's classes on the first startup,
|
||||
* which can be reused in further launches.
|
||||
*
|
||||
* The location of the cds file is $SYSTEM/$shortProductName$Version.jsa
|
||||
*/
|
||||
var enableCds: Boolean = false
|
||||
|
||||
/**
|
||||
* Additional arguments which will be added to JVM command line in IDE launchers for all operating systems.
|
||||
*/
|
||||
|
||||
@@ -298,8 +298,25 @@ class BuildContextImpl internal constructor(
|
||||
override fun getAdditionalJvmArguments(os: OsFamily, arch: JvmArchitecture, isScript: Boolean, isPortableDist: Boolean): List<String> {
|
||||
val jvmArgs = ArrayList<String>()
|
||||
|
||||
productProperties.classLoader?.let {
|
||||
jvmArgs.add("-Djava.system.class.loader=${it}")
|
||||
val cacheMacroName = when (os) {
|
||||
OsFamily.WINDOWS -> "%IDE_CACHE_DIR%"
|
||||
OsFamily.MACOS -> "\$IDE_CACHE_DIR"
|
||||
OsFamily.LINUX -> "\$IDE_CACHE_DIR"
|
||||
}
|
||||
|
||||
if (!productProperties.enableCds) {
|
||||
productProperties.classLoader?.let {
|
||||
jvmArgs.add("-Djava.system.class.loader=${it}")
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (os == OsFamily.WINDOWS) {
|
||||
jvmArgs.add("-XX:SharedArchiveFile=$cacheMacroName\\${productProperties.baseFileName}$buildNumber.jsa")
|
||||
}
|
||||
else {
|
||||
jvmArgs.add("-XX:SharedArchiveFile=$cacheMacroName/${productProperties.baseFileName}$buildNumber.jsa")
|
||||
}
|
||||
jvmArgs.add("-XX:+AutoCreateSharedArchive")
|
||||
}
|
||||
|
||||
jvmArgs.add("-Didea.vendor.name=${applicationInfo.shortCompanyName}")
|
||||
|
||||
Reference in New Issue
Block a user