add FULL_VERSION_INSTALL
PRODUCT_ID_VER -> PRODUCT_DISPLAY
This commit is contained in:
@@ -7,17 +7,18 @@
|
||||
!define PRODUCT_ID "StepMania CVS"
|
||||
!define PRODUCT_VER "4.0"
|
||||
; !define PRODUCT_VER "4.0 alpha 1"
|
||||
!define PRODUCT_ID_VER "${PRODUCT_ID} ${PRODUCT_VER}"
|
||||
|
||||
!define PRODUCT_DISPLAY "${PRODUCT_ID} ${PRODUCT_VER}"
|
||||
|
||||
!define PRODUCT_URL "http://www.stepmania.com"
|
||||
!define UPDATES_URL "http://www.stepmania.com/wiki/Downloads"
|
||||
|
||||
;!define INSTALL_TYPE_EXTERNAL_PCKS
|
||||
;!define INSTALL_TYPE_INTERNAL_PCKS
|
||||
!define INSTALL_TYPE_NON_PCK_DATA
|
||||
;!define INSTALL_EXTERNAL_PCKS
|
||||
;!define INSTALL_INTERNAL_PCKS
|
||||
!define INSTALL_NON_PCK_FILES
|
||||
;!define FULL_VERSION_INSTALL ; remove to make a patch
|
||||
!define ASSOCIATE_SMZIP
|
||||
;!define SHOW_AUTORUN
|
||||
!define MAKE_OPEN_PROGRAM_FOLDER_SHORTCUT
|
||||
;!define DIRECTX_81_REDIST_PRESENT
|
||||
;!define MAKE_UPDATES_SHORTCUT
|
||||
!define CRC_CHECK
|
||||
|
||||
+119
-102
@@ -21,23 +21,28 @@
|
||||
!system "echo This may take a moment ..." ignore
|
||||
; upx isn't working with VC++2003 executables. Disable temporarily. ;!system "utils\upx Program\*.exe Program\*.dll" ignore
|
||||
|
||||
Name "${PRODUCT_ID_VER}"
|
||||
OutFile "${PRODUCT_ID_VER}.exe"
|
||||
Name "${PRODUCT_DISPLAY}"
|
||||
OutFile "${PRODUCT_DISPLAY}.exe"
|
||||
|
||||
Caption "${PRODUCT_ID_VER}"
|
||||
UninstallCaption "${PRODUCT_ID_VER}"
|
||||
Caption "${PRODUCT_DISPLAY}"
|
||||
UninstallCaption "${PRODUCT_DISPLAY}"
|
||||
|
||||
; Some default compiler settings (uncomment and change at will):
|
||||
SetCompress auto ; (can be off or force)
|
||||
SetDatablockOptimize on ; (can be off)
|
||||
CRCCheck on ; (can be off)
|
||||
!ifdef CRC_CHECK
|
||||
CRCCheck on;
|
||||
!else
|
||||
CRCCheck off;
|
||||
!endif
|
||||
|
||||
AutoCloseWindow true ; (can be true for the window go away automatically at end)
|
||||
; ShowInstDetails hide ; (can be show to have them shown, or nevershow to disable)
|
||||
SetDateSave on ; (can be on to have files restored to their orginal date)
|
||||
InstallDir "$PROGRAMFILES\${PRODUCT_ID}"
|
||||
InstallDirRegKey HKEY_LOCAL_MACHINE "SOFTWARE\${PRODUCT_ID}" ""
|
||||
; DirShow show ; (make this hide to not let the user change it)
|
||||
DirText "${PRODUCT_ID_VER}"
|
||||
DirText "${PRODUCT_DISPLAY}"
|
||||
InstallColors /windows
|
||||
InstProgressFlags smooth
|
||||
|
||||
@@ -62,7 +67,7 @@
|
||||
;Pages
|
||||
|
||||
!ifdef SHOW_AUTORUN
|
||||
Page custom ShowCustom LeaveCustom
|
||||
Page custom ShowAutorun LeaveAutorun
|
||||
!endif
|
||||
|
||||
;!insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\Modern UI\License.txt"
|
||||
@@ -157,62 +162,62 @@ FunctionEnd
|
||||
;Installer Sections
|
||||
|
||||
LangString TEXT_IO_CHECK_FOR_UPDATES ${LANG_ENGLISH} "Check for Updates"
|
||||
LangString TEXT_IO_RUN ${LANG_ENGLISH} "${PRODUCT_ID_VER}"
|
||||
LangString TEXT_IO_RUN ${LANG_ENGLISH} "${PRODUCT_DISPLAY}"
|
||||
LangString TEXT_IO_OPEN_PROGRAM_FOLDER ${LANG_ENGLISH} "Open ${PRODUCT_ID} Program Folder"
|
||||
LangString TEXT_IO_MANUAL ${LANG_ENGLISH} "${PRODUCT_ID} Manual"
|
||||
LangString TEXT_IO_TOOLS ${LANG_ENGLISH} "${PRODUCT_ID} Tools"
|
||||
LangString TEXT_IO_WEB_SITE ${LANG_ENGLISH} "${PRODUCT_ID} Web Site"
|
||||
LangString TEXT_IO_UNINSTALL ${LANG_ENGLISH} "Uninstall ${PRODUCT_ID_VER}"
|
||||
LangString TEXT_IO_UNINSTALL ${LANG_ENGLISH} "Uninstall ${PRODUCT_DISPLAY}"
|
||||
LangString TEXT_IO_VIEW_STATISTICS ${LANG_ENGLISH} "View Statistics"
|
||||
LangString TEXT_IO_REMOVE_ONLY ${LANG_ENGLISH} "${PRODUCT_ID_VER} (remove only)"
|
||||
LangString TEXT_IO_REMOVE_ONLY ${LANG_ENGLISH} "${PRODUCT_DISPLAY} (remove only)"
|
||||
LangString TEXT_IO_SMZIP_PACKAGE ${LANG_ENGLISH} "SMZIP package"
|
||||
LangString TEXT_IO_FATAL_ERROR_COPYING_PCK ${LANG_ENGLISH} "Fatal error copying pck files."
|
||||
LangString TEXT_IO_FATAL_ERROR_INSTALL ${LANG_ENGLISH} "Fatal error during install."
|
||||
LangString TEXT_IO_CHECK_FOR_UPDATES ${LANG_FRENCH} "Vérifier les mises à jour"
|
||||
LangString TEXT_IO_RUN ${LANG_FRENCH} "${PRODUCT_ID_VER}"
|
||||
LangString TEXT_IO_RUN ${LANG_FRENCH} "${PRODUCT_DISPLAY}"
|
||||
LangString TEXT_IO_OPEN_PROGRAM_FOLDER ${LANG_FRENCH} "Open ${PRODUCT_ID} Program Folder"
|
||||
LangString TEXT_IO_MANUAL ${LANG_FRENCH} "Documentation de ${PRODUCT_ID}"
|
||||
LangString TEXT_IO_TOOLS ${LANG_FRENCH} "d'Outils de ${PRODUCT_ID}"
|
||||
LangString TEXT_IO_WEB_SITE ${LANG_FRENCH} "Le site web de ${PRODUCT_ID}"
|
||||
LangString TEXT_IO_UNINSTALL ${LANG_FRENCH} "Désinstaller ${PRODUCT_ID_VER}"
|
||||
LangString TEXT_IO_UNINSTALL ${LANG_FRENCH} "Désinstaller ${PRODUCT_DISPLAY}"
|
||||
LangString TEXT_IO_VIEW_STATISTICS ${LANG_FRENCH} "Voir les statistiques"
|
||||
LangString TEXT_IO_REMOVE_ONLY ${LANG_FRENCH} "${PRODUCT_ID_VER} (Supprimer uniquement)"
|
||||
LangString TEXT_IO_REMOVE_ONLY ${LANG_FRENCH} "${PRODUCT_DISPLAY} (Supprimer uniquement)"
|
||||
LangString TEXT_IO_SMZIP_PACKAGE ${LANG_FRENCH} "SMZIP package"
|
||||
LangString TEXT_IO_FATAL_ERROR_COPYING_PCK ${LANG_FRENCH} "Fatal error copying pck files."
|
||||
LangString TEXT_IO_FATAL_ERROR_INSTALL ${LANG_FRENCH} "Fatal error during install."
|
||||
LangString TEXT_IO_CHECK_FOR_UPDATES ${LANG_GERMAN} "Updates zu überprüfen"
|
||||
LangString TEXT_IO_RUN ${LANG_GERMAN} "${PRODUCT_ID_VER}"
|
||||
LangString TEXT_IO_RUN ${LANG_GERMAN} "${PRODUCT_DISPLAY}"
|
||||
LangString TEXT_IO_OPEN_PROGRAM_FOLDER ${LANG_GERMAN} "Open ${PRODUCT_ID} Program Folder"
|
||||
LangString TEXT_IO_MANUAL ${LANG_GERMAN} "${PRODUCT_ID} Dokumentation"
|
||||
LangString TEXT_IO_TOOLS ${LANG_GERMAN} "${PRODUCT_ID} Werkzeug"
|
||||
LangString TEXT_IO_WEB_SITE ${LANG_GERMAN} "${PRODUCT_ID} Webseite"
|
||||
LangString TEXT_IO_UNINSTALL ${LANG_GERMAN} "Deinstallation von ${PRODUCT_ID_VER}"
|
||||
LangString TEXT_IO_UNINSTALL ${LANG_GERMAN} "Deinstallation von ${PRODUCT_DISPLAY}"
|
||||
LangString TEXT_IO_VIEW_STATISTICS ${LANG_GERMAN} "Statistiken anschauen"
|
||||
LangString TEXT_IO_REMOVE_ONLY ${LANG_GERMAN} "${PRODUCT_ID_VER} (Nur entfernen)"
|
||||
LangString TEXT_IO_REMOVE_ONLY ${LANG_GERMAN} "${PRODUCT_DISPLAY} (Nur entfernen)"
|
||||
LangString TEXT_IO_SMZIP_PACKAGE ${LANG_GERMAN} "SMZIP package"
|
||||
LangString TEXT_IO_FATAL_ERROR_COPYING_PCK ${LANG_GERMAN} "Fatal error copying pck files."
|
||||
LangString TEXT_IO_FATAL_ERROR_INSTALL ${LANG_GERMAN} "Fatal error during install."
|
||||
LangString TEXT_IO_CHECK_FOR_UPDATES ${LANG_SPANISH} "Compruebe para actualizaciones"
|
||||
LangString TEXT_IO_RUN ${LANG_SPANISH} "${PRODUCT_ID_VER}"
|
||||
LangString TEXT_IO_RUN ${LANG_SPANISH} "${PRODUCT_DISPLAY}"
|
||||
LangString TEXT_IO_OPEN_PROGRAM_FOLDER ${LANG_SPANISH} "Open ${PRODUCT_ID} Program Folder"
|
||||
LangString TEXT_IO_MANUAL ${LANG_SPANISH} "${PRODUCT_ID} Documenatione"
|
||||
LangString TEXT_IO_TOOLS ${LANG_SPANISH} "${PRODUCT_ID} Herramientas"
|
||||
LangString TEXT_IO_WEB_SITE ${LANG_SPANISH} "${PRODUCT_ID} Web Site"
|
||||
LangString TEXT_IO_UNINSTALL ${LANG_SPANISH} "Uninstall ${PRODUCT_ID_VER}"
|
||||
LangString TEXT_IO_UNINSTALL ${LANG_SPANISH} "Uninstall ${PRODUCT_DISPLAY}"
|
||||
LangString TEXT_IO_VIEW_STATISTICS ${LANG_SPANISH} "Vea la estadística"
|
||||
LangString TEXT_IO_REMOVE_ONLY ${LANG_SPANISH} "${PRODUCT_ID_VER} (Quite solamente)"
|
||||
LangString TEXT_IO_REMOVE_ONLY ${LANG_SPANISH} "${PRODUCT_DISPLAY} (Quite solamente)"
|
||||
LangString TEXT_IO_SMZIP_PACKAGE ${LANG_SPANISH} "SMZIP package"
|
||||
LangString TEXT_IO_FATAL_ERROR_COPYING_PCK ${LANG_SPANISH} "Fatal error copying pck files."
|
||||
LangString TEXT_IO_FATAL_ERROR_INSTALL ${LANG_SPANISH} "Fatal error during install."
|
||||
LangString TEXT_IO_CHECK_FOR_UPDATES ${LANG_ITALIAN} "Per cercare aggiornamenti"
|
||||
LangString TEXT_IO_RUN ${LANG_ITALIAN} "${PRODUCT_ID_VER}"
|
||||
LangString TEXT_IO_RUN ${LANG_ITALIAN} "${PRODUCT_DISPLAY}"
|
||||
LangString TEXT_IO_OPEN_PROGRAM_FOLDER ${LANG_ITALIAN} "Open ${PRODUCT_ID} Program Folder"
|
||||
LangString TEXT_IO_MANUAL ${LANG_ITALIAN} "${PRODUCT_ID} Documentazione"
|
||||
LangString TEXT_IO_TOOLS ${LANG_ITALIAN} "${PRODUCT_ID} Strumenti"
|
||||
LangString TEXT_IO_WEB_SITE ${LANG_ITALIAN} "${PRODUCT_ID} Sito Web"
|
||||
LangString TEXT_IO_UNINSTALL ${LANG_ITALIAN} "Disinstalla ${PRODUCT_ID_VER}"
|
||||
LangString TEXT_IO_UNINSTALL ${LANG_ITALIAN} "Disinstalla ${PRODUCT_DISPLAY}"
|
||||
LangString TEXT_IO_VIEW_STATISTICS ${LANG_ITALIAN} "Mostra Statistiche"
|
||||
LangString TEXT_IO_REMOVE_ONLY ${LANG_ITALIAN} "${PRODUCT_ID_VER} (Elimina soltanto)"
|
||||
LangString TEXT_IO_REMOVE_ONLY ${LANG_ITALIAN} "${PRODUCT_DISPLAY} (Elimina soltanto)"
|
||||
LangString TEXT_IO_SMZIP_PACKAGE ${LANG_ITALIAN} "SMZIP package"
|
||||
LangString TEXT_IO_FATAL_ERROR_COPYING_PCK ${LANG_ITALIAN} "Fatal error copying pck files."
|
||||
LangString TEXT_IO_FATAL_ERROR_INSTALL ${LANG_ITALIAN} "Fatal error during install."
|
||||
@@ -223,14 +228,17 @@ Section "Main Section" SecMain
|
||||
SetOutPath "$INSTDIR"
|
||||
AllowSkipFiles off
|
||||
SetOverwrite on
|
||||
|
||||
!ifdef FULL_VERSION_INSTALL
|
||||
WriteUninstaller "$INSTDIR\uninstall.exe"
|
||||
|
||||
; add registry entries
|
||||
WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\${PRODUCT_ID}" "" "$INSTDIR"
|
||||
WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_ID}" "DisplayName" "$(TEXT_IO_REMOVE_ONLY)"
|
||||
WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_ID}" "UninstallString" '"$INSTDIR\uninstall.exe"'
|
||||
!endif
|
||||
|
||||
!ifdef INSTALL_TYPE_EXTERNAL_PCKS
|
||||
!ifdef INSTALL_EXTERNAL_PCKS
|
||||
; Do this copy before anything else. It's the most likely to fail.
|
||||
; Possible failure reasons are: scratched CD, user tried to copy the installer but forgot the pcks.
|
||||
CreateDirectory $INSTDIR\pcks
|
||||
@@ -251,7 +259,7 @@ Section "Main Section" SecMain
|
||||
WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Classes\.smzip" "" "smzipfile"
|
||||
!endif
|
||||
|
||||
!ifdef INSTALL_TYPE_NON_PCK_DATA
|
||||
!ifdef INSTALL_NON_PCK_FILES
|
||||
CreateDirectory "$INSTDIR\Announcers"
|
||||
SetOutPath "$INSTDIR\Announcers"
|
||||
File "Announcers\instructions.txt"
|
||||
@@ -337,7 +345,7 @@ Section "Main Section" SecMain
|
||||
File "Data\*.*"
|
||||
!endif
|
||||
|
||||
!ifdef INSTALL_TYPE_INTERNAL_PCKS
|
||||
!ifdef INSTALL_INTERNAL_PCKS
|
||||
CreateDirectory "$INSTDIR\pcks"
|
||||
SetOutPath "$INSTDIR\pcks"
|
||||
File "pcks\*.*"
|
||||
@@ -347,10 +355,11 @@ Section "Main Section" SecMain
|
||||
File "Program\${PRODUCT_FAMILY}.exe"
|
||||
File "Program\${PRODUCT_FAMILY}.vdi"
|
||||
File "Program\tools.exe"
|
||||
File "Program\mfc71.dll"
|
||||
!ifdef ASSOCIATE_SMZIP
|
||||
Call RefreshShellIcons
|
||||
!endif
|
||||
!ifdef FULL_VERSION_INSTALL
|
||||
File "Program\mfc71.dll"
|
||||
File "Program\msvcr71.dll"
|
||||
File "Program\msvcp71.dll"
|
||||
File "Program\jpeg.dll"
|
||||
@@ -374,19 +383,20 @@ Section "Main Section" SecMain
|
||||
CreateDirectory "$SMPROGRAMS\${PRODUCT_ID}\"
|
||||
CreateShortCut "$DESKTOP\$(TEXT_IO_RUN).lnk" "$INSTDIR\Program\${PRODUCT_FAMILY}.exe"
|
||||
CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_RUN).lnk" "$INSTDIR\Program\${PRODUCT_FAMILY}.exe"
|
||||
!ifdef MAKE_OPEN_PROGRAM_FOLDER_SHORTCUT
|
||||
CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_OPEN_PROGRAM_FOLDER).lnk" "$WINDIR\explorer.exe" "$INSTDIR\"
|
||||
!endif
|
||||
CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_VIEW_STATISTICS).lnk" "$INSTDIR\Program\tools.exe" "--machine-profile-stats"
|
||||
CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_TOOLS).lnk" "$INSTDIR\Program\tools.exe"
|
||||
CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_MANUAL).lnk" "$INSTDIR\Manual\index.html"
|
||||
CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_UNINSTALL).lnk" "$INSTDIR\uninstall.exe"
|
||||
CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_WEB_SITE).lnk" "${PRODUCT_URL}"
|
||||
!ifdef MAKE_UPDATES_SHORTCUT
|
||||
CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_CHECK_FOR_UPDATES).lnk" "${UPDATES_URL}"
|
||||
!endif
|
||||
!ifdef MAKE_OPEN_PROGRAM_FOLDER_SHORTCUT
|
||||
CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_OPEN_PROGRAM_FOLDER).lnk" "$WINDIR\explorer.exe" "$INSTDIR\"
|
||||
!endif
|
||||
CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_VIEW_STATISTICS).lnk" "$INSTDIR\Program\tools.exe" "--machine-profile-stats"
|
||||
CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_TOOLS).lnk" "$INSTDIR\Program\tools.exe"
|
||||
CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_MANUAL).lnk" "$INSTDIR\Manual\index.html"
|
||||
CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_UNINSTALL).lnk" "$INSTDIR\uninstall.exe"
|
||||
CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_WEB_SITE).lnk" "${PRODUCT_URL}"
|
||||
!ifdef MAKE_UPDATES_SHORTCUT
|
||||
CreateShortCut "$SMPROGRAMS\${PRODUCT_ID}\$(TEXT_IO_CHECK_FOR_UPDATES).lnk" "${UPDATES_URL}"
|
||||
!endif
|
||||
|
||||
CreateShortCut "$INSTDIR\${PRODUCT_ID}.lnk" "$INSTDIR\Program\${PRODUCT_FAMILY}.exe"
|
||||
!endif
|
||||
|
||||
IfErrors do_error do_no_error
|
||||
do_error:
|
||||
@@ -401,27 +411,27 @@ SectionEnd
|
||||
;--------------------------------
|
||||
;Installer Functions
|
||||
|
||||
LangString TEXT_IO_TITLE ${LANG_ENGLISH} "${PRODUCT_ID_VER}"
|
||||
LangString TEXT_IO_TITLE ${LANG_ENGLISH} "${PRODUCT_DISPLAY}"
|
||||
LangString TEXT_IO_SUBTITLE ${LANG_ENGLISH} " "
|
||||
LangString TEXT_IO_INSTALL ${LANG_ENGLISH} "Install"
|
||||
LangString TEXT_IO_PLAY ${LANG_ENGLISH} "Play"
|
||||
LangString TEXT_IO_REINSTALL ${LANG_ENGLISH} "Reinstall"
|
||||
LangString TEXT_IO_TITLE ${LANG_FRENCH} "${PRODUCT_ID_VER}"
|
||||
LangString TEXT_IO_TITLE ${LANG_FRENCH} "${PRODUCT_DISPLAY}"
|
||||
LangString TEXT_IO_SUBTITLE ${LANG_FRENCH} " "
|
||||
LangString TEXT_IO_INSTALL ${LANG_FRENCH} "Installer"
|
||||
LangString TEXT_IO_PLAY ${LANG_FRENCH} "Jouer"
|
||||
LangString TEXT_IO_REINSTALL ${LANG_FRENCH} "Réinstaller"
|
||||
LangString TEXT_IO_TITLE ${LANG_GERMAN} "${PRODUCT_ID_VER}"
|
||||
LangString TEXT_IO_TITLE ${LANG_GERMAN} "${PRODUCT_DISPLAY}"
|
||||
LangString TEXT_IO_SUBTITLE ${LANG_GERMAN} " "
|
||||
LangString TEXT_IO_INSTALL ${LANG_GERMAN} "Installieren"
|
||||
LangString TEXT_IO_PLAY ${LANG_GERMAN} "Spielen"
|
||||
LangString TEXT_IO_REINSTALL ${LANG_GERMAN} "Noch mal installieren"
|
||||
LangString TEXT_IO_TITLE ${LANG_SPANISH} "${PRODUCT_ID_VER}"
|
||||
LangString TEXT_IO_TITLE ${LANG_SPANISH} "${PRODUCT_DISPLAY}"
|
||||
LangString TEXT_IO_SUBTITLE ${LANG_SPANISH} " "
|
||||
LangString TEXT_IO_INSTALL ${LANG_SPANISH} "Instale"
|
||||
LangString TEXT_IO_PLAY ${LANG_SPANISH} "Juego"
|
||||
LangString TEXT_IO_REINSTALL ${LANG_SPANISH} "Reinstálese"
|
||||
LangString TEXT_IO_TITLE ${LANG_ITALIAN} "${PRODUCT_ID_VER}"
|
||||
LangString TEXT_IO_TITLE ${LANG_ITALIAN} "${PRODUCT_DISPLAY}"
|
||||
LangString TEXT_IO_SUBTITLE ${LANG_ITALIAN} " "
|
||||
LangString TEXT_IO_INSTALL ${LANG_ITALIAN} "Installa"
|
||||
LangString TEXT_IO_PLAY ${LANG_ITALIAN} "Gioca"
|
||||
@@ -430,7 +440,7 @@ LangString TEXT_IO_REINSTALL ${LANG_ITALIAN} "Re-installa"
|
||||
!ifdef SHOW_AUTORUN
|
||||
Var hwnd ; Window handle of the custom page
|
||||
|
||||
Function ShowCustom
|
||||
Function ShowAutorun
|
||||
|
||||
!insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" "$(TEXT_IO_SUBTITLE)"
|
||||
|
||||
@@ -475,7 +485,7 @@ LangString TEXT_IO_COULD_NOT_EXECUTE ${LANG_GERMAN} "Konnte $INSTDIR\Program\${P
|
||||
LangString TEXT_IO_COULD_NOT_EXECUTE ${LANG_SPANISH} "$INSTDIR\Program\${PRODUCT_FAMILY}.exe No podía ejecutarse"
|
||||
LangString TEXT_IO_COULD_NOT_EXECUTE ${LANG_ITALIAN} "Impossibile eseguire $INSTDIR\Program\${PRODUCT_FAMILY}.exe"
|
||||
|
||||
Function LeaveCustom
|
||||
Function LeaveAutorun
|
||||
|
||||
; At this point the user has either pressed Next or one of our custom buttons
|
||||
; We find out which by reading from the INI file
|
||||
@@ -528,69 +538,71 @@ LangString TEXT_IO_INSTALL_DIRECTX ${LANG_ITALIAN} "Si consiglia vivamente d
|
||||
|
||||
Function PreInstall
|
||||
|
||||
; force uninstall of previous version using NSIS
|
||||
; We need to wait until the uninstaller finishes before continuing, since it's possible
|
||||
; to click the next button again before the uninstaller's window appears and takes focus.
|
||||
; This is tricky: we can't just ExecWait the uninstaller, since it copies off the uninstaller
|
||||
; EXE and exec's that (otherwise it couldn't delete itself), so it appears to exit immediately.
|
||||
; We need to copy it off ourself, run it with the hidden parameter to tell it it's a copy,
|
||||
; and then delete the copy ourself. There's one more trick: the hidden parameter changed
|
||||
; between NSIS 1 and 2: in 1.x it was _=C:\Foo, in 2.x it's _?=C:\Foo. Rename the installer
|
||||
; for newer versions, so we can tell the difference: "uninst.exe" is the old 1.x uninstaller,
|
||||
; "uninstall.exe" is 2.x.
|
||||
StrCpy $R1 "$INSTDIR\uninst.exe"
|
||||
StrCpy $R2 "_="
|
||||
IfFileExists "$R1" prompt_uninstall_nsis
|
||||
StrCpy $R1 "$INSTDIR\uninstall.exe"
|
||||
StrCpy $R2 "_?="
|
||||
IfFileExists "$R1" prompt_uninstall_nsis old_nsis_not_installed
|
||||
!ifdef FULL_VERSION_INSTALL
|
||||
; force uninstall of previous version using NSIS
|
||||
; We need to wait until the uninstaller finishes before continuing, since it's possible
|
||||
; to click the next button again before the uninstaller's window appears and takes focus.
|
||||
; This is tricky: we can't just ExecWait the uninstaller, since it copies off the uninstaller
|
||||
; EXE and exec's that (otherwise it couldn't delete itself), so it appears to exit immediately.
|
||||
; We need to copy it off ourself, run it with the hidden parameter to tell it it's a copy,
|
||||
; and then delete the copy ourself. There's one more trick: the hidden parameter changed
|
||||
; between NSIS 1 and 2: in 1.x it was _=C:\Foo, in 2.x it's _?=C:\Foo. Rename the installer
|
||||
; for newer versions, so we can tell the difference: "uninst.exe" is the old 1.x uninstaller,
|
||||
; "uninstall.exe" is 2.x.
|
||||
StrCpy $R1 "$INSTDIR\uninst.exe"
|
||||
StrCpy $R2 "_="
|
||||
IfFileExists "$R1" prompt_uninstall_nsis
|
||||
StrCpy $R1 "$INSTDIR\uninstall.exe"
|
||||
StrCpy $R2 "_?="
|
||||
IfFileExists "$R1" prompt_uninstall_nsis old_nsis_not_installed
|
||||
|
||||
prompt_uninstall_nsis:
|
||||
MessageBox MB_YESNO|MB_ICONINFORMATION "$(TEXT_IO_UNINSTALL_PREVIOUS)" IDYES do_uninstall_nsis
|
||||
Abort
|
||||
prompt_uninstall_nsis:
|
||||
MessageBox MB_YESNO|MB_ICONINFORMATION "$(TEXT_IO_UNINSTALL_PREVIOUS)" IDYES do_uninstall_nsis
|
||||
Abort
|
||||
|
||||
do_uninstall_nsis:
|
||||
GetTempFileName $R3
|
||||
CopyFiles /SILENT $R1 $R3
|
||||
ExecWait '$R3 $R2$INSTDIR' $R4
|
||||
; Delete the copy of the installer.
|
||||
Delete $R3
|
||||
do_uninstall_nsis:
|
||||
GetTempFileName $R3
|
||||
CopyFiles /SILENT $R1 $R3
|
||||
ExecWait '$R3 $R2$INSTDIR' $R4
|
||||
; Delete the copy of the installer.
|
||||
Delete $R3
|
||||
|
||||
; $R4 is the exit value of the uninstaller. 0 means success, anything else is
|
||||
; failure (eg. aborted).
|
||||
IntCmp $R4 0 old_nsis_not_installed ; jump if 0
|
||||
; $R4 is the exit value of the uninstaller. 0 means success, anything else is
|
||||
; failure (eg. aborted).
|
||||
IntCmp $R4 0 old_nsis_not_installed ; jump if 0
|
||||
|
||||
MessageBox MB_YESNO|MB_DEFBUTTON2|MB_ICONINFORMATION "$(TEXT_IO_UNINSTALL_FAILED_INSTALL_ANYWAY)" IDYES old_nsis_not_installed
|
||||
Abort
|
||||
MessageBox MB_YESNO|MB_DEFBUTTON2|MB_ICONINFORMATION "$(TEXT_IO_UNINSTALL_FAILED_INSTALL_ANYWAY)" IDYES old_nsis_not_installed
|
||||
Abort
|
||||
|
||||
|
||||
old_nsis_not_installed:
|
||||
old_nsis_not_installed:
|
||||
|
||||
; Check for DirectX 8.0 (to be moved to the right section later)
|
||||
; We only use this for sound. Actually, I could probably make the sound
|
||||
; work with an earlier one; I'm not sure if that's needed or not. For one
|
||||
; thing, forcing people to upgrade drivers is somewhat of a good thing;
|
||||
; but upgrading to DX8 if you really don't have to is also somewhat
|
||||
; annoying, too ... -g
|
||||
ReadRegStr $0 HKEY_LOCAL_MACHINE "Software\Microsoft\DirectX" "Version"
|
||||
StrCpy $1 $0 2 2 ; 8.1 is "4.08.01.0810"
|
||||
IntCmpU $1 8 check_subversion old_dx ok
|
||||
check_subversion:
|
||||
StrCpy $1 $0 2 5
|
||||
IntCmpU $1 0 ok old_dx ok
|
||||
; Check for DirectX 8.0 (to be moved to the right section later)
|
||||
; We only use this for sound. Actually, I could probably make the sound
|
||||
; work with an earlier one; I'm not sure if that's needed or not. For one
|
||||
; thing, forcing people to upgrade drivers is somewhat of a good thing;
|
||||
; but upgrading to DX8 if you really don't have to is also somewhat
|
||||
; annoying, too ... -g
|
||||
ReadRegStr $0 HKEY_LOCAL_MACHINE "Software\Microsoft\DirectX" "Version"
|
||||
StrCpy $1 $0 2 2 ; 8.1 is "4.08.01.0810"
|
||||
IntCmpU $1 8 check_subversion old_dx ok
|
||||
check_subversion:
|
||||
StrCpy $1 $0 2 5
|
||||
IntCmpU $1 0 ok old_dx ok
|
||||
|
||||
; We can function without it (using WaveOut), so don't *require* this.
|
||||
old_dx:
|
||||
!ifdef DIRECTX_81_REDIST_PRESENT
|
||||
MessageBox MB_YESNO|MB_ICONINFORMATION "$(TEXT_IO_INSTALL_DIRECTX)" IDNO ok
|
||||
Exec "DirectX81\dxsetup.exe"
|
||||
quit
|
||||
ok:
|
||||
!else
|
||||
MessageBox MB_YESNO|MB_ICONINFORMATION "$(TEXT_IO_DIRECTX_VISIT_MICROSOFT)" IDNO ok
|
||||
ExecShell "" "http://www.microsoft.com/directx/"
|
||||
Abort
|
||||
ok:
|
||||
; We can function without it (using WaveOut), so don't *require* this.
|
||||
old_dx:
|
||||
!ifdef DIRECTX_81_REDIST_PRESENT
|
||||
MessageBox MB_YESNO|MB_ICONINFORMATION "$(TEXT_IO_INSTALL_DIRECTX)" IDNO ok
|
||||
Exec "DirectX81\dxsetup.exe"
|
||||
quit
|
||||
ok:
|
||||
!else
|
||||
MessageBox MB_YESNO|MB_ICONINFORMATION "$(TEXT_IO_DIRECTX_VISIT_MICROSOFT)" IDNO ok
|
||||
ExecShell "" "http://www.microsoft.com/directx/"
|
||||
Abort
|
||||
ok:
|
||||
!endif
|
||||
!endif
|
||||
|
||||
FunctionEnd
|
||||
@@ -618,6 +630,7 @@ Function .onInit
|
||||
File /oname=$PLUGINSDIR\image.bmp "Installer\custom.bmp"
|
||||
WriteINIStr $PLUGINSDIR\custom.ini "Field 5" "Text" $PLUGINSDIR\image.bmp
|
||||
!else
|
||||
|
||||
call PreInstall
|
||||
!endif
|
||||
|
||||
@@ -638,7 +651,7 @@ Section "Uninstall"
|
||||
DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\${PRODUCT_ID}"
|
||||
DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_ID}"
|
||||
|
||||
!ifdef INSTALL_TYPE_EXTERNAL_PCKS | INSTALL_TYPE_INTERNAL_PCKS
|
||||
!ifdef INSTALL_EXTERNAL_PCKS | INSTALL_INTERNAL_PCKS
|
||||
RMDir /r "$INSTDIR\pcks"
|
||||
!endif
|
||||
|
||||
@@ -648,7 +661,7 @@ Section "Uninstall"
|
||||
DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Classes\.smzip"
|
||||
!endif
|
||||
|
||||
!ifdef INSTALL_TYPE_NON_PCK_DATA
|
||||
!ifdef INSTALL_NON_PCK_FILES
|
||||
Delete "$INSTDIR\Announcers\instructions.txt"
|
||||
RMDir "$INSTDIR\Announcers"
|
||||
|
||||
@@ -712,6 +725,8 @@ Section "Uninstall"
|
||||
Call un.RefreshShellIcons
|
||||
!endif
|
||||
Delete "$INSTDIR\Program\${PRODUCT_FAMILY}.vdi"
|
||||
!ifdef FULL_VERSION_INSTALL
|
||||
Delete "$INSTDIR\Program\mfc71.dll"
|
||||
Delete "$INSTDIR\Program\msvcr71.dll"
|
||||
Delete "$INSTDIR\Program\msvcp71.dll"
|
||||
Delete "$INSTDIR\Program\jpeg.dll"
|
||||
@@ -723,6 +738,8 @@ Section "Uninstall"
|
||||
|
||||
Delete "$INSTDIR\Licenses.txt"
|
||||
RMDir /r "$INSTDIR\Manual"
|
||||
!endif
|
||||
|
||||
Delete "$INSTDIR\log.txt"
|
||||
Delete "$INSTDIR\info.txt"
|
||||
Delete "$INSTDIR\crashinfo.txt"
|
||||
@@ -732,7 +749,7 @@ Section "Uninstall"
|
||||
|
||||
SetShellVarContext current
|
||||
Delete "$DESKTOP\Play StepMania CVS.lnk"
|
||||
Delete "$DESKTOP\${PRODUCT_ID_VER}.lnk"
|
||||
Delete "$DESKTOP\${PRODUCT_DISPLAY}.lnk"
|
||||
; I'm being paranoid here:
|
||||
Delete "$SMPROGRAMS\${PRODUCT_ID}\*.*"
|
||||
RMDir "$SMPROGRAMS\${PRODUCT_ID}"
|
||||
|
||||
Reference in New Issue
Block a user