Christopher De Vries committed f89d0bd

Added first draft of a windows installer.

Comments (0)

Files changed (1)

+# This installs two files, app.exe and logo.ico, creates a start menu shortcut, builds an uninstaller, and
+# adds uninstall information to the registry for Add/Remove Programs
+# To get started, put this script into a folder with the two files (app.exe, logo.ico, and license.rtf -
+# You'll have to create these yourself) and run makensis on it
+# If you change the names "app.exe", "logo.ico", or "license.rtf" you should do a search and replace - they
+# show up in a few places.
+# All the other settings can be tweaked by editing the !defines at the top of this script
+!define APPNAME "PixelPaint"
+!define COMPANYNAME "Idol Star Astrometrics"
+!define DESCRIPTION "A Total Control Lighting drawing program"
+# These three must be integers
+# These will be displayed by the "Click here for support information" link in "Add/Remove Programs"
+# It is possible to use "mailto:" links in here to open the email client
+!define HELPURL "" # "Support Information" link
+!define UPDATEURL "" # "Product Updates" link
+!define ABOUTURL "" # "Publisher" link
+# This is the size (in kB) of all the files copied into "Program Files"
+!define INSTALLSIZE 12875
+RequestExecutionLevel admin ;Require admin rights on NT6+ (When UAC is turned on)
+# rtf or txt file - remember if it is txt, it must be in the DOS text format (\r\n)
+# LicenseData "license.rtf"
+# This will be in the installer/uninstaller's title bar
+Name "${APPNAME}"
+Icon "pixel-paint.ico"
+outFile "pixelpaint-installer.exe"
+!include LogicLib.nsh
+# Just three pages - license agreement, install location, and installation
+# page license
+page directory
+Page instfiles
+!macro VerifyUserIsAdmin
+pop $0
+${If} $0 != "admin" ;Require admin rights on NT4+
+        messageBox mb_iconstop "Administrator rights required!"
+        setErrorLevel 740 ;ERROR_ELEVATION_REQUIRED
+        quit
+function .onInit
+	setShellVarContext all
+	!insertmacro VerifyUserIsAdmin
+section "install"
+	# Files for the install directory - to build the installer, these should be in the same directory as the install script (this file)
+	setOutPath $INSTDIR
+	# Files added here should be removed by the uninstaller (see section "uninstall")
+	file /r dist\*.*
+	file "pixel-paint.ico"
+	# Add any other files for the install directory (license files, app data, etc) here
+	# Uninstaller - See function un.onInit and section "uninstall" for configuration
+	writeUninstaller "$INSTDIR\uninstall.exe"
+	# Start Menu
+	createShortCut "$SMPROGRAMS\${APPNAME}.lnk" "$INSTDIR\dist\pixel-paint.exe" "" "$INSTDIR\pixel-paint.ico"
+	# Registry information for add/remove programs
+	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayName" "${COMPANYNAME} - ${APPNAME} - ${DESCRIPTION}"
+	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\""
+	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S"
+	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "InstallLocation" "$\"$INSTDIR$\""
+	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayIcon" "$\"$INSTDIR\logo.ico$\""
+	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "Publisher" "$\"${COMPANYNAME}$\""
+	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "HelpLink" "$\"${HELPURL}$\""
+	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "URLUpdateInfo" "$\"${UPDATEURL}$\""
+	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "URLInfoAbout" "$\"${ABOUTURL}$\""
+	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayVersion" "$\"${VERSIONMAJOR}.${VERSIONMINOR}.${VERSIONBUILD}$\""
+	WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "VersionMajor" ${VERSIONMAJOR}
+	WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "VersionMinor" ${VERSIONMINOR}
+	# There is no option for modifying or repairing the install
+	WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoModify" 1
+	WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoRepair" 1
+	# Set the INSTALLSIZE constant (!defined at the top of this script) so Add/Remove Programs can accurately report the size
+	WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "EstimatedSize" ${INSTALLSIZE}
+# Uninstaller
+function un.onInit
+	SetShellVarContext all
+	#Verify the uninstaller - last chance to back out
+	MessageBox MB_OKCANCEL "Permanantly remove ${APPNAME}?" IDOK next
+		Abort
+	next:
+	!insertmacro VerifyUserIsAdmin
+section "uninstall"
+	# Remove Start Menu launcher
+	# Try to remove the Start Menu folder - this will only happen if it is empty
+	# Remove files
+	rmDir /r $INSTDIR\dist
+	delete $INSTDIR\pixel-paint.ico
+	# Always delete uninstaller as the last action
+	delete $INSTDIR\uninstall.exe
+	# Try to remove the install directory - this will only happen if it is empty
+	rmDir $INSTDIR
+	# Remove uninstaller information from the registry
+	DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}"