From 3436961bb5c01d659d09be134368f4f69460cef9 Mon Sep 17 00:00:00 2001 From: MW Date: Sat, 26 May 2007 13:40:19 +0000 Subject: Start of rewrite 5279! --- Prebuild/scripts/Prebuild.nsi | 231 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 231 insertions(+) create mode 100644 Prebuild/scripts/Prebuild.nsi (limited to 'Prebuild/scripts/Prebuild.nsi') diff --git a/Prebuild/scripts/Prebuild.nsi b/Prebuild/scripts/Prebuild.nsi new file mode 100644 index 0000000..0c6e2bc --- /dev/null +++ b/Prebuild/scripts/Prebuild.nsi @@ -0,0 +1,231 @@ +!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 -- cgit v1.1