abstract boolean includeBreakGenLibraries()
+ /**
+ * If the method returns {@code false} 'idea.jars.nocopy' property will be set to {@code true} in idea.properties by default. Otherwise it
+ * won't be set and the IDE will copy library *.jar files to avoid their locking when running under Windows.
+ */
+ abstract boolean shouldIDECopyJarsByDefault()
+
abstract void patchInspectScript(String path)
abstract String getAdditionalJvmArguments()
@Override
boolean includeBreakGenLibraries() {
+ return isJavaSupportedInProduct()
+ }
+
+ @Override
+ boolean shouldIDECopyJarsByDefault() {
+ return isJavaSupportedInProduct()
+ }
+
+ private boolean isJavaSupportedInProduct() {
def productLayout = productProperties.productLayout
- return productLayout.mainJarName == null || //todo[nik] remove this condition later
+ return productLayout.mainJarName == null ||
+ //todo[nik] remove this condition later; currently build scripts for IDEA don't fully migrated to the new scheme
productLayout.includedPlatformModules.contains("execution-impl")
}
File originalFile = new File("$buildContext.paths.communityHome/bin/idea.properties")
String text = originalFile.text
+ if (!buildContext.shouldIDECopyJarsByDefault()) {
+ text += """
+#---------------------------------------------------------------------
+# IDE can copy library .jar files to prevent their locking. Set this property to 'false' to enable copying.
+#---------------------------------------------------------------------
+idea.jars.nocopy=true
+"""
+ }
buildContext.productProperties.additionalIDEPropertiesFilePaths.each {
text += "\n" + new File(it).text
}
abstract class PyCharmPropertiesBase extends ProductProperties {
PyCharmPropertiesBase(String home) {
baseFileName = "pycharm"
- additionalIDEPropertiesFilePaths = ["$home/build/conf/ideaJNC.properties"]
reassignAltClickToMultipleCarets = true
productLayout.mainJarName = "pycharm.jar"
productLayout.additionalPlatformJars.put("pycharm-pydev.jar", "python-pydev")