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 "© 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
 |