232 lines
6.1 KiB
Plaintext
232 lines
6.1 KiB
Plaintext
|
!verbose 3
|
|||
|
|
|||
|
!define PRODUCT_NAME "Prebuild"
|
|||
|
!define PRODUCT_VERSION "1.3.1"
|
|||
|
!define PRODUCT_PUBLISHER "Prebuild"
|
|||
|
!define PRODUCT_PACKAGE "prebuild"
|
|||
|
!define PRODUCT_WEB_SITE "http://dnpb.sourceforge.net"
|
|||
|
!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\Prebuild"
|
|||
|
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\Prebuild"
|
|||
|
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
|
|||
|
!define PRODUCT_PATH ".."
|
|||
|
|
|||
|
;!define MUI_WELCOMEFINISHPAGE_BITMAP "PrebuildLogo.bmp"
|
|||
|
;!define MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH
|
|||
|
;!define MUI_UNWELCOMEFINISHPAGE_BITMAP "PrebuildLogo.bmp"
|
|||
|
;!define MUI_UNWELCOMEFINISHPAGE_BITMAP_NOSTRETCH
|
|||
|
|
|||
|
BrandingText "<22> 2003-2006 David Hudson, http://dnpb.sourceforge.net/"
|
|||
|
SetCompressor lzma
|
|||
|
CRCCheck on
|
|||
|
|
|||
|
; File Association defines
|
|||
|
;!include "fileassoc.nsh"
|
|||
|
|
|||
|
; MUI 1.67 compatible ------
|
|||
|
!include "MUI.nsh"
|
|||
|
|
|||
|
; MUI Settings
|
|||
|
!define MUI_ABORTWARNING
|
|||
|
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
|
|||
|
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
|
|||
|
|
|||
|
;--------------------------------
|
|||
|
;Variables
|
|||
|
|
|||
|
;--------------------------------
|
|||
|
;Installer Pages
|
|||
|
|
|||
|
; Welcome page
|
|||
|
!insertmacro MUI_PAGE_WELCOME
|
|||
|
; License page
|
|||
|
!insertmacro MUI_PAGE_LICENSE "..\doc\license.txt"
|
|||
|
; Directory page
|
|||
|
!insertmacro MUI_PAGE_DIRECTORY
|
|||
|
|
|||
|
; Instfiles page
|
|||
|
!insertmacro MUI_PAGE_INSTFILES
|
|||
|
|
|||
|
; Finish page
|
|||
|
!insertmacro MUI_PAGE_FINISH
|
|||
|
|
|||
|
;------------------------------------
|
|||
|
; Uninstaller pages
|
|||
|
!insertmacro MUI_UNPAGE_CONFIRM
|
|||
|
!insertmacro MUI_UNPAGE_INSTFILES
|
|||
|
!insertmacro MUI_UNPAGE_FINISH
|
|||
|
;------------------------------------
|
|||
|
|
|||
|
; Language files
|
|||
|
!insertmacro MUI_LANGUAGE "English"
|
|||
|
|
|||
|
; Reserve files
|
|||
|
!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
|
|||
|
|
|||
|
; MUI end ------
|
|||
|
|
|||
|
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
|
|||
|
OutFile "..\${PRODUCT_PACKAGE}-${PRODUCT_VERSION}-setup.exe"
|
|||
|
InstallDir "$PROGRAMFILES\Prebuild"
|
|||
|
InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
|
|||
|
ShowInstDetails show
|
|||
|
ShowUnInstDetails show
|
|||
|
|
|||
|
; .NET Framework check
|
|||
|
; http://msdn.microsoft.com/netframework/default.aspx?pull=/library/en-us/dnnetdep/html/redistdeploy1_1.asp
|
|||
|
; Section "Detecting that the .NET Framework 1.1 is installed"
|
|||
|
Function .onInit
|
|||
|
ReadRegDWORD $R0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322" Install
|
|||
|
StrCmp $R0 "" 0 CheckPreviousVersion
|
|||
|
MessageBox MB_OK "Microsoft .NET Framework 1.1 was not found on this system.$\r$\n$\r$\nUnable to continue this installation."
|
|||
|
Abort
|
|||
|
|
|||
|
CheckPreviousVersion:
|
|||
|
ReadRegStr $R0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName"
|
|||
|
StrCmp $R0 "" CheckOSVersion 0
|
|||
|
MessageBox MB_OK "An old version of Prebuild is installed on this computer, please uninstall first.$\r$\n$\r$\nUnable to continue this installation."
|
|||
|
Abort
|
|||
|
|
|||
|
CheckOSVersion:
|
|||
|
Call IsSupportedWindowsVersion
|
|||
|
Pop $R0
|
|||
|
StrCmp $R0 "False" NoAbort 0
|
|||
|
MessageBox MB_OK "The operating system you are using is not supported by Prebuild (95/98/ME/NT3.x/NT4.x)."
|
|||
|
Abort
|
|||
|
|
|||
|
NoAbort:
|
|||
|
FunctionEnd
|
|||
|
|
|||
|
Section "Source" SecSource
|
|||
|
SetOverwrite ifnewer
|
|||
|
SetOutPath "$INSTDIR\src"
|
|||
|
File /r /x *.swp /x .svn /x *.xml /x *.csproj /x *.user /x *.build /x *.prjx /x *.mdp /x bin /x obj /x *.nsi ${PRODUCT_PATH}\src\*.*
|
|||
|
|
|||
|
;Store installation folder
|
|||
|
WriteRegStr HKCU "Software\Prebuild" "" $INSTDIR
|
|||
|
|
|||
|
SectionEnd
|
|||
|
|
|||
|
Section "Runtime" SecRuntime
|
|||
|
SetOverwrite ifnewer
|
|||
|
SetOutPath "$INSTDIR"
|
|||
|
File /r /x *.swp /x .svn /x *.nsi /x src /x *.sln /x *.cmbx /x *.mds ${PRODUCT_PATH}\Prebuild.exe ${PRODUCT_PATH}\prebuild.xml
|
|||
|
|
|||
|
;Store installation folder
|
|||
|
WriteRegStr HKCU "Software\Prebuild" "" $INSTDIR
|
|||
|
|
|||
|
SectionEnd
|
|||
|
|
|||
|
Section "Documentation" SecDocs
|
|||
|
SetOverwrite ifnewer
|
|||
|
SetOutPath "$INSTDIR\doc"
|
|||
|
File /r /x *.swp /x .svn /x *.exe ${PRODUCT_PATH}\doc\*.*
|
|||
|
|
|||
|
;Store installation folder
|
|||
|
WriteRegStr HKCU "Software\Prebuild" "" $INSTDIR
|
|||
|
SectionEnd
|
|||
|
|
|||
|
Section "Scripts" SecScripts
|
|||
|
SetOverwrite ifnewer
|
|||
|
SetOutPath "$INSTDIR\scripts"
|
|||
|
File /r /x *.swp /x .svn /x *.nsi /x *.exe ${PRODUCT_PATH}\scripts\*.*
|
|||
|
|
|||
|
;Store installation folder
|
|||
|
WriteRegStr HKCU "Software\Prebuild" "" $INSTDIR
|
|||
|
SectionEnd
|
|||
|
|
|||
|
;Language strings
|
|||
|
|
|||
|
Section -AdditionalIcons
|
|||
|
WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"
|
|||
|
SectionEnd
|
|||
|
|
|||
|
Section -Post
|
|||
|
WriteUninstaller "$INSTDIR\uninst.exe"
|
|||
|
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
|
|||
|
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
|
|||
|
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
|
|||
|
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
|
|||
|
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
|
|||
|
SectionEnd
|
|||
|
|
|||
|
Section Uninstall
|
|||
|
|
|||
|
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
|
|||
|
DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
|
|||
|
RMDir /r "$INSTDIR"
|
|||
|
|
|||
|
SectionEnd
|
|||
|
|
|||
|
; GetWindowsVersion, taken from NSIS help, modified for our purposes
|
|||
|
Function IsSupportedWindowsVersion
|
|||
|
|
|||
|
Push $R0
|
|||
|
Push $R1
|
|||
|
|
|||
|
ReadRegStr $R0 HKLM \
|
|||
|
"SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
|
|||
|
|
|||
|
IfErrors 0 lbl_winnt
|
|||
|
|
|||
|
; we are not NT
|
|||
|
ReadRegStr $R0 HKLM \
|
|||
|
"SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber
|
|||
|
|
|||
|
StrCpy $R1 $R0 1
|
|||
|
StrCmp $R1 '4' 0 lbl_error
|
|||
|
|
|||
|
StrCpy $R1 $R0 3
|
|||
|
|
|||
|
StrCmp $R1 '4.0' lbl_win32_95
|
|||
|
StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98
|
|||
|
|
|||
|
lbl_win32_95:
|
|||
|
StrCpy $R0 'False'
|
|||
|
Goto lbl_done
|
|||
|
|
|||
|
lbl_win32_98:
|
|||
|
StrCpy $R0 'False'
|
|||
|
Goto lbl_done
|
|||
|
|
|||
|
lbl_win32_ME:
|
|||
|
StrCpy $R0 'False'
|
|||
|
Goto lbl_done
|
|||
|
|
|||
|
lbl_winnt:
|
|||
|
|
|||
|
StrCpy $R1 $R0 1
|
|||
|
|
|||
|
StrCmp $R1 '3' lbl_winnt_x
|
|||
|
StrCmp $R1 '4' lbl_winnt_x
|
|||
|
|
|||
|
StrCpy $R1 $R0 3
|
|||
|
|
|||
|
StrCmp $R1 '5.0' lbl_winnt_2000
|
|||
|
StrCmp $R1 '5.1' lbl_winnt_XP
|
|||
|
StrCmp $R1 '5.2' lbl_winnt_2003 lbl_error
|
|||
|
|
|||
|
lbl_winnt_x:
|
|||
|
StrCpy $R0 'False'
|
|||
|
Goto lbl_done
|
|||
|
|
|||
|
lbl_winnt_2000:
|
|||
|
Strcpy $R0 'True'
|
|||
|
Goto lbl_done
|
|||
|
|
|||
|
lbl_winnt_XP:
|
|||
|
Strcpy $R0 'True'
|
|||
|
Goto lbl_done
|
|||
|
|
|||
|
lbl_winnt_2003:
|
|||
|
Strcpy $R0 'True'
|
|||
|
Goto lbl_done
|
|||
|
|
|||
|
lbl_error:
|
|||
|
Strcpy $R0 'False'
|
|||
|
lbl_done:
|
|||
|
|
|||
|
Pop $R1
|
|||
|
Exch $R0
|
|||
|
|
|||
|
FunctionEnd
|