setup.nsi 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. # ECOin - Copyright (c) - 2014/2021 - GPLv3 - epsylon@riseup.net (https://03c8.net)
  2. Name Ecoin
  3. RequestExecutionLevel highest
  4. SetCompressor /SOLID lzma
  5. # General Symbol Definitions
  6. !define REGKEY "SOFTWARE\$(^Name)"
  7. !define VERSION 0.0.2
  8. !define COMPANY "Ecoin project"
  9. !define URL https://03c8.net
  10. # MUI Symbol Definitions
  11. !define MUI_ICON "../share/pixmaps/ecoin.ico"
  12. !define MUI_WELCOMEFINISHPAGE_BITMAP "../share/pixmaps/nsis-wizard.bmp"
  13. !define MUI_HEADERIMAGE
  14. !define MUI_HEADERIMAGE_RIGHT
  15. !define MUI_HEADERIMAGE_BITMAP "../share/pixmaps/nsis-header.bmp"
  16. !define MUI_FINISHPAGE_NOAUTOCLOSE
  17. !define MUI_STARTMENUPAGE_REGISTRY_ROOT HKLM
  18. !define MUI_STARTMENUPAGE_REGISTRY_KEY ${REGKEY}
  19. !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME StartMenuGroup
  20. !define MUI_STARTMENUPAGE_DEFAULTFOLDER Ecoin
  21. #!define MUI_FINISHPAGE_RUN $INSTDIR\ecoin-qt.exe
  22. !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
  23. !define MUI_UNWELCOMEFINISHPAGE_BITMAP "../share/pixmaps/nsis-wizard.bmp"
  24. !define MUI_UNFINISHPAGE_NOAUTOCLOSE
  25. # Included files
  26. !include Sections.nsh
  27. !include MUI2.nsh
  28. # Variables
  29. Var StartMenuGroup
  30. # Installer pages
  31. !insertmacro MUI_PAGE_WELCOME
  32. !insertmacro MUI_PAGE_DIRECTORY
  33. !insertmacro MUI_PAGE_STARTMENU Application $StartMenuGroup
  34. !insertmacro MUI_PAGE_INSTFILES
  35. !insertmacro MUI_PAGE_FINISH
  36. !insertmacro MUI_UNPAGE_CONFIRM
  37. !insertmacro MUI_UNPAGE_INSTFILES
  38. # Installer languages
  39. !insertmacro MUI_LANGUAGE English
  40. # Installer attributes
  41. OutFile ecoin-0.0.2-win32-setup.exe
  42. InstallDir $PROGRAMFILES\Ecoin
  43. CRCCheck on
  44. XPStyle on
  45. BrandingText " "
  46. ShowInstDetails show
  47. VIProductVersion 0.0.2.1
  48. VIAddVersionKey ProductName Ecoin
  49. VIAddVersionKey ProductVersion "${VERSION}"
  50. VIAddVersionKey CompanyName "${COMPANY}"
  51. VIAddVersionKey CompanyWebsite "${URL}"
  52. VIAddVersionKey FileVersion "${VERSION}"
  53. VIAddVersionKey FileDescription ""
  54. VIAddVersionKey LegalCopyright ""
  55. InstallDirRegKey HKCU "${REGKEY}" Path
  56. ShowUninstDetails show
  57. # Installer sections
  58. Section -Main SEC0000
  59. SetOutPath $INSTDIR
  60. SetOverwrite on
  61. #File ../release/ecoin-qt.exe
  62. File /oname=license.txt ../COPYING
  63. File /oname=readme.txt ../doc/README_windows.txt
  64. SetOutPath $INSTDIR\daemon
  65. File ../src/ecoind.exe
  66. SetOutPath $INSTDIR\src
  67. File /r /x *.exe /x *.o ../src\*.*
  68. SetOutPath $INSTDIR
  69. WriteRegStr HKCU "${REGKEY}\Components" Main 1
  70. # Remove old wxwidgets-based-bitcoin executable and locales:
  71. #Delete /REBOOTOK $INSTDIR\ecoin.exe
  72. #RMDir /r /REBOOTOK $INSTDIR\locale
  73. SectionEnd
  74. Section -post SEC0001
  75. WriteRegStr HKCU "${REGKEY}" Path $INSTDIR
  76. SetOutPath $INSTDIR
  77. WriteUninstaller $INSTDIR\uninstall.exe
  78. !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
  79. CreateDirectory $SMPROGRAMS\$StartMenuGroup
  80. CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Uninstall Ecoin.lnk" $INSTDIR\uninstall.exe
  81. !insertmacro MUI_STARTMENU_WRITE_END
  82. WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayName "$(^Name)"
  83. WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayVersion "${VERSION}"
  84. WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" Publisher "${COMPANY}"
  85. WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" URLInfoAbout "${URL}"
  86. WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayIcon $INSTDIR\uninstall.exe
  87. WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" UninstallString $INSTDIR\uninstall.exe
  88. WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoModify 1
  89. WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoRepair 1
  90. SectionEnd
  91. # Macro for selecting uninstaller sections
  92. !macro SELECT_UNSECTION SECTION_NAME UNSECTION_ID
  93. Push $R0
  94. ReadRegStr $R0 HKCU "${REGKEY}\Components" "${SECTION_NAME}"
  95. StrCmp $R0 1 0 next${UNSECTION_ID}
  96. !insertmacro SelectSection "${UNSECTION_ID}"
  97. GoTo done${UNSECTION_ID}
  98. next${UNSECTION_ID}:
  99. !insertmacro UnselectSection "${UNSECTION_ID}"
  100. done${UNSECTION_ID}:
  101. Pop $R0
  102. !macroend
  103. # Uninstaller sections
  104. Section /o -un.Main UNSEC0000
  105. Delete /REBOOTOK $INSTDIR\license.txt
  106. Delete /REBOOTOK $INSTDIR\readme.txt
  107. RMDir /r /REBOOTOK $INSTDIR\daemon
  108. RMDir /r /REBOOTOK $INSTDIR\src
  109. DeleteRegValue HKCU "${REGKEY}\Components" Main
  110. SectionEnd
  111. Section -un.post UNSEC0001
  112. DeleteRegKey HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)"
  113. Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Uninstall Ecoin.lnk"
  114. Delete /REBOOTOK $INSTDIR\uninstall.exe
  115. Delete /REBOOTOK $INSTDIR\debug.log
  116. Delete /REBOOTOK $INSTDIR\db.log
  117. DeleteRegValue HKCU "${REGKEY}" StartMenuGroup
  118. DeleteRegValue HKCU "${REGKEY}" Path
  119. DeleteRegKey /IfEmpty HKCU "${REGKEY}\Components"
  120. DeleteRegKey /IfEmpty HKCU "${REGKEY}"
  121. DeleteRegKey HKCR "ecoin"
  122. RmDir /REBOOTOK $SMPROGRAMS\$StartMenuGroup
  123. RmDir /REBOOTOK $INSTDIR
  124. Push $R0
  125. StrCpy $R0 $StartMenuGroup 1
  126. StrCmp $R0 ">" no_smgroup
  127. no_smgroup:
  128. Pop $R0
  129. SectionEnd
  130. # Installer functions
  131. Function .onInit
  132. InitPluginsDir
  133. FunctionEnd
  134. # Uninstaller functions
  135. Function un.onInit
  136. ReadRegStr $INSTDIR HKCU "${REGKEY}" Path
  137. !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuGroup
  138. !insertmacro SELECT_UNSECTION Main ${UNSEC0000}
  139. FunctionEnd