mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-199519 Uninstall: The IDE installation folder is not deleted after uninstallation
IDEA-CR-37456
This commit is contained in:
@@ -1576,7 +1576,6 @@ skip_delete_settings:
|
||||
|
||||
; Delete uninstaller itself
|
||||
Delete "$INSTDIR\bin\Uninstall.exe"
|
||||
Delete "$INSTDIR\jre32\bin\client\classes.jsa"
|
||||
Delete "$INSTDIR\jre64\bin\server\classes.jsa"
|
||||
|
||||
Push "Complete"
|
||||
@@ -1590,6 +1589,12 @@ skip_delete_settings:
|
||||
Delete "$INSTDIR\bin\${PRODUCT_EXE_FILE}.vmoptions"
|
||||
Delete "$INSTDIR\bin\${PRODUCT_EXE_FILE_64}.vmoptions"
|
||||
${EndIf}
|
||||
IfFileExists "$INSTDIR\jre32\*.*" 0 no_jre32
|
||||
Delete "$INSTDIR\jre32\bin\server\classes.jsa"
|
||||
StrCpy $0 "$INSTDIR\jre32\lib\applet"
|
||||
Call un.DeleteDirIfEmpty
|
||||
!include "un_jre32_win.nsh"
|
||||
no_jre32:
|
||||
!include "unidea_win.nsh"
|
||||
StrCpy $0 "$INSTDIR"
|
||||
Call un.DeleteDirIfEmpty
|
||||
|
||||
+6
-6
@@ -47,12 +47,12 @@ class NsisFileListGenerator {
|
||||
}
|
||||
}
|
||||
|
||||
void generateUninstallerFile(File outputFile) {
|
||||
void generateUninstallerFile(String installDir = "\$INSTDIR", File outputFile) {
|
||||
outputFile.withWriter { BufferedWriter out ->
|
||||
filesRelativePaths.toSorted().each {
|
||||
out.writeLine("Delete \"\$INSTDIR\\${toWinPath(it)}\"")
|
||||
out.writeLine("Delete \"${installDir}\\${toWinPath(it)}\"")
|
||||
if (it.endsWith(".py")) {
|
||||
out.writeLine("Delete \"\$INSTDIR\\${toWinPath(it)}c\"") //.pyc
|
||||
out.writeLine("Delete \"${installDir}\\${toWinPath(it)}c\"") //.pyc
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,11 +60,11 @@ class NsisFileListGenerator {
|
||||
|
||||
directoryToFiles.keySet().toSorted().reverseEach {
|
||||
if (!it.empty) {
|
||||
out.writeLine("RmDir /r \"\$INSTDIR\\${toWinPath(it)}\\__pycache__\"");
|
||||
out.writeLine("RmDir \"\$INSTDIR\\${toWinPath(it)}\"");
|
||||
out.writeLine("RmDir /r \"${installDir}\\${toWinPath(it)}\\__pycache__\"");
|
||||
out.writeLine("RmDir \"${installDir}\\${toWinPath(it)}\"");
|
||||
}
|
||||
}
|
||||
out.writeLine("RmDir \"\$INSTDIR\"")
|
||||
out.writeLine("RmDir \"${installDir}\"")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+8
@@ -17,6 +17,7 @@ package org.jetbrains.intellij.build.impl
|
||||
|
||||
import com.intellij.openapi.util.SystemInfoRt
|
||||
import org.jetbrains.intellij.build.BuildContext
|
||||
import org.jetbrains.intellij.build.JvmArchitecture
|
||||
import org.jetbrains.intellij.build.WindowsDistributionCustomizer
|
||||
|
||||
import static com.intellij.openapi.util.io.FileUtil.toSystemDependentName
|
||||
@@ -118,6 +119,13 @@ class WinExeInstallerBuilder {
|
||||
}
|
||||
generator.generateInstallerFile(new File(box, "nsiconf/idea_win.nsh"))
|
||||
generator.generateUninstallerFile(new File(box, "nsiconf/unidea_win.nsh"))
|
||||
|
||||
String jre32Dir = buildContext.bundledJreManager.extractWinJre(JvmArchitecture.x32)
|
||||
if (jre32Dir != null) {
|
||||
def generatorForJre32Dir = new NsisFileListGenerator()
|
||||
generatorForJre32Dir.addDirectory(jre32Dir + "/jre32")
|
||||
generatorForJre32Dir.generateUninstallerFile("\$INSTDIR\\jre32", new File(box, "nsiconf/un_jre32_win.nsh"))
|
||||
}
|
||||
}
|
||||
catch (IOException e) {
|
||||
buildContext.messages.error("Failed to generated list of files for NSIS installer: $e")
|
||||
|
||||
Reference in New Issue
Block a user