214 lines
5.6 KiB
Plaintext
214 lines
5.6 KiB
Plaintext
; RunnerInstaller.nsi
|
|
;
|
|
; This script is based on example1.nsi, but it remember the directory,
|
|
; has uninstall support and (optionally) installs start menu shortcuts.
|
|
;
|
|
; It will install example2.nsi into a directory that the user selects,
|
|
|
|
;--------------------------------
|
|
!include MUI2.nsh
|
|
|
|
!ifndef FULL_VERSION
|
|
!define FULL_VERSION "1.0.0.0"
|
|
!endif
|
|
!ifndef SOURCE_DIR
|
|
!define SOURCE_DIR "C:\source\temp\InstallerTest\runner"
|
|
!endif
|
|
!ifndef INSTALLER_FILENAME
|
|
!define INSTALLER_FILENAME "C:\source\temp\InstallerTest\RunnerInstaller.exe"
|
|
!endif
|
|
|
|
!ifndef MAKENSIS
|
|
!define MAKENSIS "%appdata%\GameMaker-Studio\makensis"
|
|
!endif
|
|
|
|
!ifndef COMPANY_NAME
|
|
!define COMPANY_NAME ""
|
|
!endif
|
|
|
|
!ifndef COPYRIGHT_TXT
|
|
!define COPYRIGHT_TXT "(c)Copyright 2013"
|
|
!endif
|
|
|
|
!ifndef FILE_DESC
|
|
!define FILE_DESC "Created with GameMaker:Studio"
|
|
!endif
|
|
|
|
!ifndef LICENSE_NAME
|
|
!define LICENSE_NAME "License.txt"
|
|
!endif
|
|
|
|
!ifndef ICON_FILE
|
|
!define ICON_FILE "icon.ico"
|
|
!endif
|
|
|
|
!ifndef IMAGE_FINISHED
|
|
!define IMAGE_FINISHED "Runner_finish.bmp"
|
|
!endif
|
|
|
|
!ifndef IMAGE_HEADER
|
|
!define IMAGE_HEADER "Runner_header.bmp"
|
|
!endif
|
|
|
|
!ifndef PRODUCT_NAME
|
|
!define PRODUCT_NAME "Runner"
|
|
!endif
|
|
|
|
!define APP_NAME "${PRODUCT_NAME}"
|
|
!define SHORT_NAME "${PRODUCT_NAME}"
|
|
|
|
!ifndef EXE_NAME
|
|
!define EXE_NAME "${PRODUCT_NAME}"
|
|
!endif
|
|
|
|
|
|
;;USAGE:
|
|
!define MIN_FRA_MAJOR "2"
|
|
!define MIN_FRA_MINOR "0"
|
|
!define MIN_FRA_BUILD "*"
|
|
|
|
!addplugindir "."
|
|
|
|
;--------------------------------
|
|
|
|
; The name of the installer
|
|
Name "${APP_NAME}"
|
|
Caption "${APP_NAME}"
|
|
BrandingText "${APP_NAME}"
|
|
|
|
; The file to write
|
|
OutFile "${INSTALLER_FILENAME}"
|
|
|
|
; The default installation directory
|
|
InstallDir "$PROFILE\${APP_NAME}"
|
|
|
|
; Registry key to check for directory (so if you install again, it will
|
|
; overwrite the old one automatically)
|
|
InstallDirRegKey HKCU "Software\Runner" "Install_Dir"
|
|
|
|
; Request application privileges for Windows Vista
|
|
RequestExecutionLevel admin
|
|
|
|
|
|
VIProductVersion "${FULL_VERSION}"
|
|
VIAddVersionKey /LANG=1033 "FileVersion" "${FULL_VERSION}"
|
|
VIAddVersionKey /LANG=1033 "ProductVersion" "${FULL_VERSION}"
|
|
VIAddVersionKey /LANG=1033 "ProductName" "${PRODUCT_NAME}"
|
|
VIAddVersionKey /LANG=1033 "CompanyName" "${PRODUCT_PUBLISHER}"
|
|
VIAddVersionKey /LANG=1033 "LegalCopyright" "${COPYRIGHT_TXT}"
|
|
VIAddVersionKey /LANG=1033 "FileDescription" "${FILE_DESC}"
|
|
|
|
|
|
|
|
!define MUI_HEADERIMAGE
|
|
!define MUI_HEADERIMAGE_BITMAP_NOSTRETCH
|
|
!define MUI_ICON "${ICON_FILE}"
|
|
!define MUI_WELCOMEFINISHPAGE_BITMAP "${IMAGE_FINISHED}"
|
|
!define MUI_HEADERIMAGE_BITMAP "${IMAGE_HEADER}"
|
|
!define MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH
|
|
|
|
|
|
;--------------------------------
|
|
|
|
; Pages
|
|
!insertmacro MUI_PAGE_LICENSE "${LICENSE_NAME}"
|
|
!insertmacro MUI_PAGE_COMPONENTS
|
|
!insertmacro MUI_PAGE_DIRECTORY
|
|
!insertmacro MUI_PAGE_INSTFILES
|
|
# These indented statements modify settings for MUI_PAGE_FINISH
|
|
!define MUI_FINISHPAGE_NOAUTOCLOSE
|
|
!define MUI_FINISHPAGE_RUN_TEXT "Start ${PRODUCT_NAME}"
|
|
!define MUI_FINISHPAGE_RUN "$INSTDIR\${EXE_NAME}.exe"
|
|
!insertmacro MUI_PAGE_FINISH
|
|
|
|
Var DirectXSetupError
|
|
|
|
UninstPage uninstConfirm
|
|
UninstPage instfiles
|
|
|
|
!insertmacro MUI_LANGUAGE "English"
|
|
;--------------------------------
|
|
|
|
; The stuff to install
|
|
Section `${APP_NAME}`
|
|
SectionIn RO
|
|
|
|
; Set output path to the installation directory.
|
|
SetOutPath $INSTDIR
|
|
|
|
; Put file there
|
|
File "${LICENSE_NAME}"
|
|
File /r "${SOURCE_DIR}\*.*"
|
|
|
|
; Write the uninstall keys for Windows
|
|
WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SHORT_NAME}" "DisplayName" "${APP_NAME}"
|
|
WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SHORT_NAME}" "UninstallString" '"$INSTDIR\uninstall.exe"'
|
|
WriteRegDWORD SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SHORT_NAME}" "NoModify" 1
|
|
WriteRegDWORD SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SHORT_NAME}" "NoRepair" 1
|
|
WriteUninstaller "uninstall.exe"
|
|
|
|
SectionEnd
|
|
|
|
; Optional section (can be disabled by the user)
|
|
Section "Start Menu Shortcuts"
|
|
|
|
CreateDirectory "$SMPROGRAMS\${APP_NAME}"
|
|
CreateShortCut "$SMPROGRAMS\${APP_NAME}\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
|
|
CreateShortCut "$SMPROGRAMS\${APP_NAME}\${APP_NAME}.lnk" "$INSTDIR\${EXE_NAME}.exe" "" "$INSTDIR\${EXE_NAME}.exe"
|
|
CreateShortCut "$SMPROGRAMS\${APP_NAME}\${APP_NAME} License.lnk" "notepad.exe" "$INSTDIR\License.txt"
|
|
|
|
SectionEnd
|
|
|
|
|
|
; Optional section (can be enabled by the user)
|
|
Section /o "Desktop shortcut"
|
|
|
|
CreateShortCut "$DESKTOP\${APP_NAME}.lnk" "$INSTDIR\${EXE_NAME}.exe" ""
|
|
|
|
SectionEnd
|
|
|
|
|
|
;--------------------------------
|
|
|
|
; Uninstaller
|
|
|
|
Section "Uninstall"
|
|
; Remove registry keys
|
|
DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SHORT_NAME}"
|
|
|
|
; Remove files and uninstaller (everything)
|
|
RMDir /r "$INSTDIR"
|
|
|
|
; Remove desktop icon
|
|
Delete "$DESKTOP\${APP_NAME}.lnk"
|
|
|
|
; Remove shortcuts, if any
|
|
Delete "$SMPROGRAMS\${APP_NAME}\*.*"
|
|
|
|
; Remove directories used
|
|
RMDir "$SMPROGRAMS\${APP_NAME}"
|
|
RMDir "$INSTDIR"
|
|
|
|
SectionEnd
|
|
|
|
|
|
;--------------------------------
|
|
;
|
|
; This should be the LAST section available....
|
|
;
|
|
Section "DirectX Install" SEC_DIRECTX
|
|
|
|
SectionIn RO
|
|
|
|
SetOutPath "$TEMP"
|
|
File "${MAKENSIS}\dxwebsetup.exe"
|
|
DetailPrint "Running DirectX Setup..."
|
|
ExecWait '"$TEMP\dxwebsetup.exe" /Q' $DirectXSetupError
|
|
DetailPrint "Finished DirectX Setup"
|
|
|
|
Delete "$TEMP\dxwebsetup.exe"
|
|
|
|
SetOutPath "$INSTDIR"
|
|
|
|
SectionEnd
|