123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 |
- !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
|