diff --git a/build/groovy/org/jetbrains/intellij/build/BuildContext.groovy b/build/groovy/org/jetbrains/intellij/build/BuildContext.groovy index aababf51b22b..121e52b0b0c4 100644 --- a/build/groovy/org/jetbrains/intellij/build/BuildContext.groovy +++ b/build/groovy/org/jetbrains/intellij/build/BuildContext.groovy @@ -65,6 +65,12 @@ abstract class BuildContext { 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() diff --git a/build/groovy/org/jetbrains/intellij/build/impl/BuildContextImpl.groovy b/build/groovy/org/jetbrains/intellij/build/impl/BuildContextImpl.groovy index b741ca5fdbbe..5fe53ef1e029 100644 --- a/build/groovy/org/jetbrains/intellij/build/impl/BuildContextImpl.groovy +++ b/build/groovy/org/jetbrains/intellij/build/impl/BuildContextImpl.groovy @@ -259,8 +259,18 @@ class BuildContextImpl extends BuildContext { @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") } diff --git a/build/groovy/org/jetbrains/intellij/build/impl/BuildTasksImpl.groovy b/build/groovy/org/jetbrains/intellij/build/impl/BuildTasksImpl.groovy index 2a01f0f6ed23..6d03a54eca40 100644 --- a/build/groovy/org/jetbrains/intellij/build/impl/BuildTasksImpl.groovy +++ b/build/groovy/org/jetbrains/intellij/build/impl/BuildTasksImpl.groovy @@ -143,6 +143,14 @@ class BuildTasksImpl extends BuildTasks { 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 } diff --git a/python/build/groovy/org/jetbrains/intellij/build/pycharm/PyCharmPropertiesBase.groovy b/python/build/groovy/org/jetbrains/intellij/build/pycharm/PyCharmPropertiesBase.groovy index 934febae1d72..9d7c7c31957e 100644 --- a/python/build/groovy/org/jetbrains/intellij/build/pycharm/PyCharmPropertiesBase.groovy +++ b/python/build/groovy/org/jetbrains/intellij/build/pycharm/PyCharmPropertiesBase.groovy @@ -43,7 +43,6 @@ import org.jetbrains.intellij.build.WindowsDistributionCustomizer 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")