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
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)