Mercurial > mxd2map
diff contrib/installer/MXD2map-installer.nsi @ 266:713ea6f42e55
Added missing files and removed libraries.
author | Administrator@vbox-server2003.hq.intevation.de |
---|---|
date | Thu, 08 Sep 2011 15:54:34 +0200 |
parents | |
children | b2df9936d4f8 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contrib/installer/MXD2map-installer.nsi Thu Sep 08 15:54:34 2011 +0200 @@ -0,0 +1,286 @@ +; NSIS script to build Windows installer of MXD2map +; +; Copyright (c) 2011 by Intevation GmbH, Germany <info@intevation.de> +; +; This file is part of MXD2map. +; +; This program is free software under the LGPL (>=v2.1) +; Read the file LICENCE.txt coming with the software for details +; or visit http://www.gnu.org/licenses/ if it does not exist. +; +; MXD2map has been developed on behalf of the +; Bundesamt fuer Seeschifffahrt und Hydrographie (BSH) in Hamburg +; by Intevation GmbH. +; +; Authors: +; Raimund Renkert <raimund.renkert@intevation.de> +; Bjoern Schilberg <bjoern.schilberg@intevation.de> +; Stephan Holl <stephan.holl@intevation.de> +; + + +; Product defines ------------ +!define PRODUCT_NAME "MXD2map" +!define PRODUCT_VERSION "0.9" +!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\mxd2map" +!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" +!define PRODUCT_UNINST_ROOT_KEY "HKLM" +!define PRODUCT_STARTMENU_REGVAL "NSIS:StartMenuDir" +; --------------------------- + + +; MUI 2 compatible ---------- +!include "MUI2.nsh" +!include "Sections.nsh" +!include "InstallOptions.nsh" +; --------------------------- + + +; MUI Settings -------------- +!define MUI_ABORTWARNING +!define MUI_ICON "favicon.ico" +!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" +!define MUI_HEADERIMAGE +!define MUI_HEADERIMAGE_BITMAP "logo_wide.bmp" +!define MUI_WELCOMEPAGE_TITLE_3LINES +!define MUI_FINISHPAGE_TITLE_3LINES +!define MUI_FINISHPAGE_TEXT $(TXT_FIN) + +; Language selection dialog settings +!define MUI_LANGDLL_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}" +!define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_UNINST_KEY}" +!define MUI_LANGDLL_REGISTRY_VALUENAME "NSIS:Language" + +; Check for Admin +!define MUI_PAGE_CUSTOMFUNCTION_SHOW PrintNonAdminWarning + +; Welcome page +!insertmacro MUI_PAGE_WELCOME + +; License page +!insertmacro MUI_PAGE_LICENSE "LICENCE.txt" + +; Components page +!define MUI_COMPONENTSPAGE_SMALLDESC +!insertmacro MUI_PAGE_COMPONENTS + +; Directory page +!insertmacro MUI_PAGE_DIRECTORY + +; Start menu page +var ICONS_GROUP +!define MUI_STARTMENUPAGE_NODISABLE +!define MUI_STARTMENUPAGE_DEFAULTFOLDER "MXD2map" +!define MUI_STARTMENUPAGE_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}" +!define MUI_STARTMENUPAGE_REGISTRY_KEY "${PRODUCT_UNINST_KEY}" +!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${PRODUCT_STARTMENU_REGVAL}" +!insertmacro MUI_PAGE_STARTMENU Application $ICONS_GROUP + +; Instfiles page +!insertmacro MUI_PAGE_INSTFILES + +; Uninstaller pages +!define MUI_PAGE_CUSTOMFUNCTION_SHOW un.PrintNonAdminWarning +!insertmacro MUI_UNPAGE_INSTFILES + +; Language files +!insertmacro MUI_LANGUAGE "English" +!insertmacro MUI_LANGUAGE "German" +; --------------------------- + + +; Language strings ---------- +LangString DESC_SEC_MXD2MAP ${LANG_ENGLISH} \ + "MXD2map is a converter for ArcGIS MXD-files into UMN MapServer Mapfiles." +LangString DESC_SEC_MXD2MAP ${LANG_GERMAN} \ + "MXD2map wird zur Erzeugung von UMN MapServer- Konfigurationsdateien aus ArcGIS MXD-Dateien verwendet." +LangString DESC_SEC_EXAMPLES ${LANG_ENGLISH} \ + "The examples show how to use and configure MXD2map." +LangString DESC_SEC_EXAMPLES ${LANG_GERMAN} \ + "Die Beispiele zeigen, wie MXD2map benutzt und konfiguriert werden kann." +LangString UN_PRE ${LANG_ENGLISH} \ + "Do you want to remove $(^Name) and all of its components?" +LangString UN_PRE ${LANG_GERMAN} \ + "Möchten Sie $(^Name) mit allen Komponenten deinstallieren?" +LangString UN_POST ${LANG_ENGLISH} "Uninstall of $(^Name) successful." +LangString UN_POST ${LANG_GERMAN} "Deinstallation von $(^Name) erfolgreich." +LangString MISSING_ARCGIS ${LANG_ENGLISH} \ + "ArcGIS is not installed. Please install an ArcGIS Environment first." +LangString MISSING_ARCGIS ${LANG_GERMAN} \ + "ArcGIS ist nicht installiert. Bitte installieren Sie eine ArcGIS Umgebung." +LangString TXT_DOC ${LANG_ENGLISH} "Documentation" +LangString TXT_DOC ${LANG_GERMAN} "Dokumentation" +LangString TXT_ADMIN ${LANG_ENGLISH} \ + "Warning: Administrator permissions required for the installation of ${PRODUCT_NAME}." +LangString TXT_ADMIN ${LANG_GERMAN} \ + "Achtung: Für die Installation von ${PRODUCT_NAME} werden Administratorrechte benötigt." +LangString TXT_ADMIN_UN ${LANG_ENGLISH} \ + "Warning: Administrator permissions required for the uninstallation of ${PRODUCT_NAME}." +LangString TXT_ADMIN_UN ${LANG_GERMAN} \ + "Achtung: Für die Deinstallation von ${PRODUCT_NAME} werden Administratorrechte benötigt." + +; --------------------------- + + +; Install settings ---------- +Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" +OutFile "${PRODUCT_NAME}-${PRODUCT_VERSION}.exe" +InstallDir "$PROGRAMFILES\${PRODUCT_NAME}" +InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" "" +ShowInstDetails show +ShowUnInstDetails show +RequestExecutionLevel admin +; --------------------------- + + +; MXD2map ------------------- +Section "MXD2map" SEC01 + SectionIn RO + SetOutPath "$INSTDIR" + SetShellVarContext all + SetOverwrite ifnewer + File "LICENCE.txt" + File /r "bin\*.*" + File "favicon.ico" + + ReadEnvStr $R0 "HOMEDRIVE" + ReadEnvStr $R1 "HOMEPATH" + CreateDirectory "$R0$R1\MXD2map" + CreateDirectory "$R0$R1\MXD2map\logs" + + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + CreateDirectory "$SMPROGRAMS\$ICONS_GROUP" + CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\MXD2map Shell.lnk" \ + "$INSTDIR\MXD2map-Shell.bat" "" "$INSTDIR\favicon.ico" + CreateShortCut "$DESKTOP\MXD2map Shell.lnk" \ + "$INSTDIR\MXD2map-Shell.bat" "" "$INSTDIR\favicon.ico" + CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\$(TXT_DOC).lnk"\ + "http://mxd2map.org/documentation/index.html" "" "$INSTDIR\favicon.ico" 0 + !insertmacro MUI_STARTMENU_WRITE_END +SectionEnd +; --------------------------- + + +; Examples ------------------ +Section "Examples" SEC02 + SetOverwrite ifnewer + SetShellVarContext all + File /r "example\*.*" + + ReadEnvStr $R0 "HOMEDRIVE" + ReadEnvStr $R1 "HOMEPATH" + CreateDirectory "$R0$R1\MXD2map\example" + + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + CreateDirectory "$SMPROGRAMS\$ICONS_GROUP" + CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Run Example.lnk" \ + "$INSTDIR\RunExample.bat" + !insertmacro MUI_STARTMENU_WRITE_END +SectionEnd +; --------------------------- + + +; Section descriptions ------ +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} $(DESC_SEC_MXD2MAP) + !insertmacro MUI_DESCRIPTION_TEXT ${SEC02} $(DESC_SEC_EXAMPLES) +!insertmacro MUI_FUNCTION_DESCRIPTION_END +; --------------------------- + + +; Icons --------------------- +Section -AdditionalIcons + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Uninstall.lnk" "$INSTDIR\uninst.exe" + !insertmacro MUI_STARTMENU_WRITE_END +SectionEnd +; --------------------------- + + +; Post install -------------- +Section -Post + WriteUninstaller "$INSTDIR\uninst.exe" + WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\" + 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}" "DisplayIcon" "$INSTDIR\" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" +SectionEnd +; --------------------------- + + +; Uninstall ----------------- +Section Uninstall + SetShellVarContext all + !insertmacro MUI_STARTMENU_GETFOLDER "Application" $ICONS_GROUP + RMDir /r "$SMPROGRAMS\$ICONS_GROUP" + RMDir /r "$INSTDIR" + + Delete "$DESKTOP\MXD2map Shell.lnk" + + DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" + DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}" + SetAutoClose true +SectionEnd +; --------------------------- + + +; On startup ---------------- +Function .onInit + ; Check to see if ArcGIS installed + ReadRegStr $R0 HKLM "SOFTWARE\ESRI\ArcGIS\" "InstallDir" + StrCmp $R0 "" +2 + IfFileExists "$R0*.*" Installed +1 + messagebox MB_DEFBUTTON1|MB_OK $(MISSING_ARCGIS) + Quit + Installed: + ; Continue installing the MXD2map converter. +FunctionEnd +; --------------------------- + + +; On uninstaller startup ---- +Function un.onInit + ; Ask for removal. + !insertmacro MUI_UNGETLANGUAGE + MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 $(UN_PRE) IDYES +2 + Abort +FunctionEnd +; --------------------------- + + +; On uninstaller succuss ---- +Function un.onUninstSuccess + ; Close window and show success dialog + HideWindow + MessageBox MB_ICONINFORMATION|MB_OK $(UN_POST) +FunctionEnd +; --------------------------- + +Function PrintNonAdminWarning + ClearErrors + UserInfo::GetName + IfErrors leave + POP $0 + UserInfo::GetAccountType + POP $1 + StrCmp $1 "Admin" leave +1 + MessageBox MB_OK|MB_ICONEXCLAMATION "$(TXT_ADMIN)" + Quit + + leave: +FunctionEnd + +Function un.PrintNonAdminWarning + ClearErrors + UserInfo::GetName + IfErrors leave + POP $0 + UserInfo::GetAccountType + POP $1 + StrCmp $1 "Admin" leave +1 + MessageBox MB_OK|MB_ICONEXCLAMATION "$(TXT_ADMIN_UN)" + Quit + + leave: +FunctionEnd