home *** CD-ROM | disk | FTP | other *** search
- ;================================
- ;NSIS Installer for FWP
- ;Written by Karsten Schwenk
- ;
- ;NOTE: I'm not an expert for NSIS, so it is very likely that I did some stupid mistakes - feel free to correct them.
- ;
- ;================================
-
- !include "MUI.nsh"
-
- ;--------------------------------
- ;Configuration
-
- !define FWP_INSTALL_FROM_DIR "..\.."
- !define FWP_NAME "FWP"
- !define FWP_VERSION "0.0.6"
-
- ;General
- Name "${FWP_NAME} ${FWP_VERSION}"
- OutFile "fwp-${FWP_VERSION}-win32-installer.exe"
-
- ;Folder selection page
- InstallDir "$PROGRAMFILES\${FWP_NAME}"
-
- ;Remember install folder
- InstallDirRegKey HKCU "Software\${FWP_NAME}" ""
-
- ;Remember the Start Menu Folder
- !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU"
- !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\${FWP_NAME}"
- !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
- !define MUI_STARTMENUPAGE_DEFAULTFOLDER "${FWP_NAME}"
-
- ;Finish page
- !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\Readme.txt"
- !define MUI_FINISHPAGE_RUN "$INSTDIR\fwp.exe"
- !define MUI_FINISHPAGE_RUN_TEXT "Run FWP"
-
- ;--------------------------------
- ;Variables
-
- Var SM_TEMP
- Var STARTMENU_FOLDER
- Var INI_VALUE
-
- ;--------------------------------
- ; Interface
- !define MUI_ABORTWARNING
-
- ;--------------------------------
- ;Modern UI Configuration
-
- !insertmacro MUI_PAGE_WELCOME
- !insertmacro MUI_PAGE_LICENSE "${FWP_INSTALL_FROM_DIR}\License.txt"
- !insertmacro MUI_PAGE_COMPONENTS
- !insertmacro MUI_PAGE_DIRECTORY
- !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
- Page custom DesktopIconPage
- !insertmacro MUI_PAGE_INSTFILES
- !insertmacro MUI_PAGE_FINISH
-
- !insertmacro MUI_UNPAGE_CONFIRM
- !insertmacro MUI_UNPAGE_INSTFILES
-
- ;--------------------------------
- ;Languages
-
- !insertmacro MUI_LANGUAGE "English"
-
- ;--------------------------------
- ;Language Strings
-
- ;Description
- LangString DESC_SecCopyMain ${LANG_ENGLISH} "Install FWP game. (The only thing needed to play...)"
- LangString DESC_SecCopySource ${LANG_ENGLISH} "Install FWP source code and API-docs. (You will also need 'FWP game' for models, textures, etc.)"
-
- ;--------------------------------
- ;Data
-
- ; LicenseData "${FWP_INSTALL_FROM_DIR}\License.txt"
-
- ;--------------------------------
- ;Reserve Files
-
- ;Things that need to be extracted on first (keep these lines before any File command!)
- ;Only useful for BZIP2 compression
- ; !insertmacro MUI_RESERVEFILE_WELCOMEFINISHPAGE
- ReserveFile "desktop_icon_page.ini"
- ; ReserveFile "${NSISDIR}\Contrib\Graphics\Icons\modern-install-blue-full.ico"
- !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
-
- ;--------------------------------
- ;Installer Sections
-
- Section "FWP game" SecCopyMain
-
- ;Add your stuff here
-
- SetOutPath "$INSTDIR"
- File "${FWP_INSTALL_FROM_DIR}\*.*"
-
- File /nonfatal /r "${FWP_INSTALL_FROM_DIR}\arenas"
- File /nonfatal /r "${FWP_INSTALL_FROM_DIR}\weapons"
- File /nonfatal /r "${FWP_INSTALL_FROM_DIR}\vehicles"
- File /nonfatal /r "${FWP_INSTALL_FROM_DIR}\gui"
- ; File /nonfatal /r "${FWP_INSTALL_FROM_DIR}\icons"
-
- File /nonfatal /r "${FWP_INSTALL_FROM_DIR}\configs"
- File /nonfatal /r "${FWP_INSTALL_FROM_DIR}\docs"
-
-
- ;Store install folder
- WriteRegStr HKCU "Software\${FWP_NAME}" "" $INSTDIR
-
- !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
-
- ;Create shortcuts
- CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
- CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\play fwp.lnk" "$INSTDIR\fwp.exe" "" "$INSTDIR\fwp.exe" 0 \
- "SW_SHOWMINIMIZED" "" "This starts FWP"
- CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\view readme.lnk" "$INSTDIR\Readme.txt"
- CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\view manual.lnk" "$INSTDIR\docs\manual\index.html"
- CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\visit our homepage.lnk" "http://fightwinprevail.sourceforge.net"
- CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
-
- !insertmacro MUI_STARTMENU_WRITE_END
-
- ;Read a value from an InstallOptions INI file
- !insertmacro MUI_INSTALLOPTIONS_READ $INI_VALUE "desktop_icon_page.ini" "Field 2" "State"
-
- ;Create desktop shortcut if check box was checked
- StrCmp $INI_VALUE "1" "" +2
- CreateShortCut "$DESKTOP\play FWP.lnk" "$INSTDIR\fwp.exe" "" "$INSTDIR\fwp.exe" 0 "SW_SHOWMINIMIZED" "" "This starts FWP"
-
-
- ;Create uninstaller
- WriteUninstaller "$INSTDIR\Uninstall.exe"
-
- SectionEnd
-
-
- Section "FWP source code" SecCopySource
-
- ;Add your stuff here
-
- SetOutPath "$INSTDIR"
- File /r "${FWP_INSTALL_FROM_DIR}\source"
-
-
- ;Store install folder
- WriteRegStr HKCU "Software\${FWP_NAME}" "" $INSTDIR
-
- !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
-
- ;Create shortcuts
- CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
- CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER\source"
- CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\source\source readme.lnk" "$INSTDIR\source\Readme_source.txt"
- CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\source\source license.lnk" "$INSTDIR\source\License_source.txt"
- CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\source\API documentation.lnk" "$INSTDIR\source\api-doc\html\index.html"
- CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\source\msvc workspace file.lnk" "$INSTDIR\source\msvc\fwp\fwp.dsw"
-
- !insertmacro MUI_STARTMENU_WRITE_END
-
- ;Create uninstaller
- WriteUninstaller "$INSTDIR\Uninstall.exe"
-
- SectionEnd
-
- ;--------------------------------
- ;Installer Functions
-
- Function .onInit
-
- ;Extract InstallOptions INI files
- !insertmacro MUI_INSTALLOPTIONS_EXTRACT "desktop_icon_page.ini"
-
- FunctionEnd
-
- LangString TEXT_IO_TITLE ${LANG_ENGLISH} "Additional Icons"
- LangString TEXT_IO_SUBTITLE ${LANG_ENGLISH} "Choose which additional icons the installer should create for you."
-
- Function DesktopIconPage
-
- !insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" "$(TEXT_IO_SUBTITLE)"
- !insertmacro MUI_INSTALLOPTIONS_DISPLAY "desktop_icon_page.ini"
-
- FunctionEnd
-
- ;--------------------------------
- ;Descriptions
-
- !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
- !insertmacro MUI_DESCRIPTION_TEXT ${SecCopyMain} $(DESC_SecCopyMain)
- !insertmacro MUI_DESCRIPTION_TEXT ${SecCopySource} $(DESC_SecCopySource)
- !insertmacro MUI_FUNCTION_DESCRIPTION_END
-
- ;--------------------------------
- ;Uninstaller Section
-
- Section "Uninstall"
-
- ;Add your stuff here
-
- Delete "$INSTDIR\*.*"
-
- RMDir /r "$INSTDIR\arenas"
- RMDir /r "$INSTDIR\vehicles"
- RMDir /r "$INSTDIR\weapons"
- RMDir /r "$INSTDIR\configs"
- RMDir /r "$INSTDIR\docs"
- ; RMDir /r "$INSTDIR\icons"
- RMDir /r "$INSTDIR\gui"
-
- RMDir /r "$INSTDIR\source"
-
- Delete "$INSTDIR\Uninstall.exe"
-
- ;Remove shortcut
- ; ReadRegStr ${TEMP} "${MUI_STARTMENUPAGE_REGISTRY_ROOT}" "${MUI_STARTMENUPAGE_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}"
- !insertmacro MUI_STARTMENU_GETFOLDER Application $SM_TEMP
-
- StrCmp $SM_TEMP "" noshortcuts
-
- Delete "$SMPROGRAMS\$SM_TEMP\play fwp.lnk"
- Delete "$SMPROGRAMS\$SM_TEMP\view readme.lnk"
- Delete "$SMPROGRAMS\$SM_TEMP\view manual.lnk"
- Delete "$SMPROGRAMS\$SM_TEMP\visit our homepage.lnk"
- Delete "$SMPROGRAMS\$SM_TEMP\Uninstall.lnk"
-
- Delete "$SMPROGRAMS\$SM_TEMP\source\msvc workspace file.lnk"
- Delete "$SMPROGRAMS\$SM_TEMP\source\API documentation.lnk"
- Delete "$SMPROGRAMS\$SM_TEMP\source\source readme.lnk"
- Delete "$SMPROGRAMS\$SM_TEMP\source\source license.lnk"
- RmDir "$SMPROGRAMS\$SM_TEMP\source"
-
- RMDir "$SMPROGRAMS\$SM_TEMP" ;Only if empty, so it won't delete other shortcuts
-
- Delete "$DESKTOP\play FWP.lnk" ; FIXME
-
- noshortcuts:
-
- RMDir "$INSTDIR"
-
- DeleteRegKey /ifempty HKCU "Software\${FWP_NAME}"
-
- ; !insertmacro MUI_UNFINISHHEADER
-
- SectionEnd
-