SetCompressor /SOLID lzma ; Script generated by the HM NIS Edit Script Wizard. ;!include PathMani.nsh ; HM NIS Edit Wizard helper defines !define GNM_NAME "Gnumeric" !define GNM_LONGNAME "Gnumeric Spreadsheet" !define GNM_APPNAME "Gnumeric Spreadsheet" !define GNM_VERSION "@VERSION@" !define GNM_VERSION_TAG "@YYYYMMDD@" !define GNM_VERSION_FULL "${GNM_VERSION}-${GNM_VERSION_TAG}" !define GNM_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${GNM_NAME}" !define GNM_STARTMENU_REG_VAL "NSIS:StartMenuDir" !define GNM_HELP_DIR "share\gnumeric\${GNM_VERSION}\doc\C" !define GNM_HELP "${GNM_HELP_DIR}\gnumeric.chm" !define GOFFICE_VERSION "@GOFFICE_VERSION@" ;!define GTK_VERSION "3.9" ;!define GTK_VENDORRC "0" ;!define GTK_VENDORVERSION "${GTK_VERSION}.${GTK_VENDORRC}" ; MUI 1.67 compatible ------ !include "MUI.nsh" ;ReserveFile "op1.ini" ;ReserveFile "op3.ini" ;!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS ;!insertmacro MUI_RESERVEFILE_LANGDLL ; MUI Settings !define MUI_ABORTWARNING !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico" !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" !define MUI_WELCOMEPAGE_TITLE_3LINES !define MUI_WELCOMEPAGE_TEXT "You can always get the newest version from:\r\n\r\nhttp://www.gnumeric.org/\r\n\r\nThis wizard will guide you through the installation of $(^NameDA).\r\n\r\nIt is recommended that you close all other applications before starting Setup. This will make it possible to update relevant system files without having to reboot your computer.\r\n\r\n$_CLICK" !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_LICENSE "COPYING-gpl2" Page custom CustomPageShortcut !insertmacro MUI_PAGE_COMPONENTS !insertmacro MUI_PAGE_DIRECTORY var ICONS_GROUP !define MUI_STARTMENUPAGE_NODISABLE !define MUI_STARTMENUPAGE_DEFAULTFOLDER "Gnumeric" !insertmacro MUI_PAGE_STARTMENU Application $ICONS_GROUP !insertmacro MUI_PAGE_INSTFILES !define MUI_FINISHPAGE_TITLE_3LINES !define MUI_FINISHPAGE_LINK "Visit the Gnumeric website for the latest news" !define MUI_FINISHPAGE_LINK_LOCATION "http://www.gnumeric.org/" !insertmacro MUI_PAGE_FINISH !insertmacro MUI_UNPAGE_INSTFILES !insertmacro MUI_LANGUAGE "English" InstType "Standard" InstType "Minimal" InstType "Full" ; MUI end ------ Var SHORTINSTDIR Var ISADMIN Var INI_VALUE Name "${GNM_LONGNAME} ${GNM_VERSION_FULL}" OutFile "gnumeric-${GNM_VERSION_FULL}.exe" Icon "share\pixmaps\win32-gnumeric.ico" InstallDir "$PROGRAMFILES\${GNM_NAME}" InstallDirRegKey HKLM "Software\GNOME\${GNM_NAME}" "Path" ShowInstDetails hide ShowUnInstDetails show !define GNM_ROOT "$INSTDIR\${GNM_VERSION}" !macro CopyDir THEDIR SetOutPath "${GNM_ROOT}\${THEDIR}" File /r "${THEDIR}\*" !macroend Section "Gnumeric (required)" SEC01 SectionIn 1 2 3 RO SetOutPath "${GNM_ROOT}\bin" File /x "libpython*.dll" "bin\*.dll" File "bin\gnumeric.exe" File "bin\ssconvert.exe" File "bin\ssgrep.exe" File "bin\ssdiff.exe" File "bin\gsf.exe" ;File "bin\gsf-vba-dump.exe" File "bin\gtk-update-icon-cache.exe" File "bin\gdk-pixbuf-query-loaders.exe" File "bin\pango-querymodules.exe" # required for g_spawn_* File "bin\gspawn-win32-helper-console.exe" File "bin\gspawn-win32-helper.exe" SetOutPath "${GNM_ROOT}\lib" File /r /x "*.a" /x "*.la" /x "*.lib" /x "*.def" /x "pkgconfig" /x "include" /x "Python2.7" /x "*Conf.sh" "lib\*" !insertmacro CopyDir "etc" !insertmacro CopyDir "share\themes" !insertmacro CopyDir "share\gnumeric" !insertmacro CopyDir "share\libthai" !insertmacro CopyDir "share\pixmaps" !insertmacro CopyDir "share\icons" !insertmacro CopyDir "share\glib-2.0\schemas" SetOutPath "${GNM_ROOT}\${GNM_HELP_DIR}" File "${GNM_HELP}" File "${GNM_HELP_DIR}\gnumeric.hhmap" WriteRegStr SHCTX "Software\GNOME\${GNM_NAME}" "Path" "${GNM_ROOT}\bin" WriteRegStr SHCTX "Software\GNOME\${GNM_NAME}" "Version" "${GNM_VERSION_FULL}" GetFullPathName /SHORT $SHORTINSTDIR ${GNM_ROOT} StrCmp $ISADMIN "1" 0 +5 ExecWait "regedit /s $SHORTINSTDIR\etc\win32\reg\org.gnome.gnumeric.dialogs.reg" ExecWait "regedit /s $SHORTINSTDIR\etc\win32\reg\org.gnome.gnumeric.reg" ExecWait "regedit /s $SHORTINSTDIR\etc\win32\reg\org.gnome.gnumeric.plugin.reg" Goto +4 ExecWait "regedit /s $SHORTINSTDIR\etc\win32\reg\org.gnome.gnumeric.dialogs.hkcu.reg" ExecWait "regedit /s $SHORTINSTDIR\etc\win32\reg\org.gnome.gnumeric.hkcu.reg" ExecWait "regedit /s $SHORTINSTDIR\etc\win32\reg\org.gnome.gnumeric.plugin.hkcu.reg" ExecWait "${GNM_ROOT}\bin\gdk-pixbuf-query-loaders.exe --update-cache" ExecWait "${GNM_ROOT}\bin\pango-querymodules.exe --update-cache" ;ExecWait "${GNM_ROOT}\gtk-update-icon-cache.exe ${GNM_ROOT}\share\icons\gnome" ;ExecWait "${GNM_ROOT}\gtk-update-icon-cache.exe ${GNM_ROOT}\share\icons\hicolor" WriteRegStr HKCR "GNOME.Gnumeric" "" "Gnumeric Spreadsheet" WriteRegStr HKCR "GNOME.Gnumeric\shell" "" "Open" WriteRegStr HKCR "GNOME.Gnumeric\DefaultIcon" "" "${GNM_ROOT}\bin\gnumeric.exe,0" WriteRegStr HKCR "GNOME.Gnumeric\shell\Open\command" "" '"${GNM_ROOT}\bin\gnumeric.exe" "%1"' WriteRegStr HKCR "Applications\gnumeric.exe\shell\Open\command" "" '"${GNM_ROOT}\bin\gnumeric.exe" "%1"' SectionEnd ############################################################################# SectionGroup "File Handlers" Section "Gnumeric (.gnumeric)" SectionIn 1 2 3 WriteRegStr HKCR ".gnumeric" "" "GNOME.Gnumeric" WriteRegStr HKCR ".gnumeric" "Content Type" "application/x-gnumeric" SectionEnd Section "MS Excel (tm)" SectionIn 3 WriteRegStr HKCR ".xls" "" "GNOME.Gnumeric" WriteRegStr HKCR ".xls" "Content Type" "application/vnd.ms-excel" WriteRegStr HKCR ".xlw" "" "GNOME.Gnumeric" WriteRegStr HKCR ".xlw" "Content Type" "application/vnd.ms-excel" WriteRegStr HKCR ".xlt" "" "GNOME.Gnumeric" WriteRegStr HKCR ".xlt" "Content Type" "application/vnd.ms-excel" WriteRegStr HKCR ".xlsx" "" "GNOME.Gnumeric" WriteRegStr HKCR ".xlsx" "Content Type" "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" WriteRegStr HKCR ".xltx" "" "GNOME.Gnumeric" WriteRegStr HKCR ".xltx" "Content Type" "application/vnd.openxmlformats-officedocument.spreadsheetml.template" SectionEnd Section "OpenOffice.org ODF" SectionIn 3 WriteRegStr HKCR ".ods" "" "GNOME.Gnumeric" WriteRegStr HKCR ".ods" "Content Type" "vnd.oasis.opendocument.spreadsheet" WriteRegStr HKCR ".ots" "" "GNOME.Gnumeric" WriteRegStr HKCR ".ots" "Content Type" "vnd.oasis.opendocument.spreadsheet-template" WriteRegStr HKCR ".sxc" "" "GNOME.Gnumeric" WriteRegStr HKCR ".sxc" "Content Type" "application/vnd.sun.xml.calc" WriteRegStr HKCR ".stc" "" "GNOME.Gnumeric" WriteRegStr HKCR ".stc" "Content Type" "application/vnd.sun.xml.calc.template" SectionEnd Section "Lotus 123 (tm)" SectionIn 3 WriteRegStr HKCR ".wk1" "" "GNOME.Gnumeric" WriteRegStr HKCR ".wk1" "Content Type" "application/vnd.lotus-1-2-3" WriteRegStr HKCR ".wk4" "" "GNOME.Gnumeric" WriteRegStr HKCR ".wk4" "Content Type" "application/vnd.lotus-1-2-3" WriteRegStr HKCR ".wr1" "" "GNOME.Gnumeric" WriteRegStr HKCR ".wr1" "Content Type" "application/vnd.lotus-1-2-3" WriteRegStr HKCR ".wks" "" "GNOME.Gnumeric" WriteRegStr HKCR ".wks" "Content Type" "application/vnd.lotus-1-2-3" WriteRegStr HKCR ".123" "" "GNOME.Gnumeric" WriteRegStr HKCR ".123" "Content Type" "application/vnd.lotus-1-2-3" SectionEnd Section "Applix (.as)" SectionIn 1 3 WriteRegStr HKCR ".as" "" "GNOME.Gnumeric" WriteRegStr HKCR ".as" "Content Type" "application/x-applix-spreadsheet" SectionEnd Section "Quattro Pro (tm)" SectionIn 1 3 WriteRegStr HKCR ".wb1" "" "GNOME.Gnumeric" WriteRegStr HKCR ".wb1" "Content Type" "application/x-quattro-pro" WriteRegStr HKCR ".wb2" "" "GNOME.Gnumeric" WriteRegStr HKCR ".wb2" "Content Type" "application/x-quattro-pro" WriteRegStr HKCR ".wb3" "" "GNOME.Gnumeric" WriteRegStr HKCR ".wb3" "Content Type" "application/x-quattro-pro" SectionEnd Section "Plan Perfect (tm)" SectionIn 1 3 WriteRegStr HKCR ".pln" "" "GNOME.Gnumeric" WriteRegStr HKCR ".pln" "Content Type" "application/x-planperfect" SectionEnd Section "Psiconv" SectionIn 1 3 WriteRegStr HKCR ".psisheet" "" "GNOME.Gnumeric" WriteRegStr HKCR ".psisheet" "Content Type" "application/x-psiconv" SectionEnd Section "Data Interchange Format (.dif)" SectionIn 1 3 WriteRegStr HKCR ".dif" "" "GNOME.Gnumeric" WriteRegStr HKCR ".dif" "Content Type" "application/x-dif-spreadsheet" SectionEnd Section "Multiplan SYLK" SectionIn 1 3 WriteRegStr HKCR ".slk" "" "GNOME.Gnumeric" WriteRegStr HKCR ".slk" "Content Type" "application/x-sylk" WriteRegStr HKCR ".sylk" "" "GNOME.Gnumeric" WriteRegStr HKCR ".sylk" "Content Type" "application/x-sylk" SectionEnd Section "GNU Oleo" SectionIn 1 3 WriteRegStr HKCR ".oleo" "" "GNOME.Gnumeric" WriteRegStr HKCR ".oleo" "Content Type" "application/x-oleo" SectionEnd Section "Paradox Database (tm)" SectionIn 1 3 WriteRegStr HKCR ".px" "" "GNOME.Gnumeric" WriteRegStr HKCR ".px" "Content Type" "application/x-paradox-db" SectionEnd Section "XBase Database (tm)" SectionIn 1 3 WriteRegStr HKCR ".dbf" "" "GNOME.Gnumeric" WriteRegStr HKCR ".dbf" "Content Type" "application/dbf" SectionEnd Section "MPS linear and integer programs" SectionIn 1 3 WriteRegStr HKCR ".mps" "" "GNOME.Gnumeric" WriteRegStr HKCR ".mps" "Content Type" "application/x-mps" SectionEnd SectionGroupEnd ############################################################################# !macro Locale LOCALE Section "${LOCALE} Translation" SectionIn 1 3 SetOutPath "${GNM_ROOT}\share\locale\${LOCALE}\LC_MESSAGES" File "share\locale\${LOCALE}\LC_MESSAGES\gtk30.mo" File "share\locale\${LOCALE}\LC_MESSAGES\glib20.mo" File /nonfatal "share\locale\${LOCALE}\LC_MESSAGES\goffice-${GOFFICE_VERSION}.mo" File "share\locale\${LOCALE}\LC_MESSAGES\gnumeric-${GNM_VERSION}.mo" File "share\locale\${LOCALE}\LC_MESSAGES\gnumeric-${GNM_VERSION}-functions.mo" SectionEnd !macroend SectionGroup "Translations" !insertmacro Locale "am" !insertmacro Locale "ar" !insertmacro Locale "ast" !insertmacro Locale "az" !insertmacro Locale "bg" !insertmacro Locale "ca" !insertmacro Locale "ca@valencia" !insertmacro Locale "cs" !insertmacro Locale "da" !insertmacro Locale "de" !insertmacro Locale "dz" !insertmacro Locale "el" !insertmacro Locale "en_CA" !insertmacro Locale "en_GB" !insertmacro Locale "eo" !insertmacro Locale "es" !insertmacro Locale "et" !insertmacro Locale "eu" !insertmacro Locale "fi" !insertmacro Locale "fr" !insertmacro Locale "ga" !insertmacro Locale "gl" !insertmacro Locale "gu" !insertmacro Locale "he" !insertmacro Locale "hr" !insertmacro Locale "hu" !insertmacro Locale "id" !insertmacro Locale "it" !insertmacro Locale "ja" !insertmacro Locale "kk" !insertmacro Locale "ko" !insertmacro Locale "lt" !insertmacro Locale "lv" !insertmacro Locale "mk" !insertmacro Locale "ml" !insertmacro Locale "mr" !insertmacro Locale "ms" !insertmacro Locale "nb" !insertmacro Locale "ne" !insertmacro Locale "nl" !insertmacro Locale "nn" !insertmacro Locale "oc" !insertmacro Locale "pl" !insertmacro Locale "pt" !insertmacro Locale "pt_BR" !insertmacro Locale "ro" !insertmacro Locale "ru" !insertmacro Locale "rw" !insertmacro Locale "sk" !insertmacro Locale "sl" !insertmacro Locale "sr" !insertmacro Locale "sr@latin" !insertmacro Locale "sv" !insertmacro Locale "te" !insertmacro Locale "tr" !insertmacro Locale "uk" !insertmacro Locale "vi" !insertmacro Locale "zh_CN" !insertmacro Locale "zh_HK" !insertmacro Locale "zh_TW" SectionGroupEnd ############################################################################# Section -AdditionalIcons SetOutPath "${GNM_ROOT}\bin" CreateDirectory "$SMPROGRAMS\$ICONS_GROUP" CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\${GNM_APPNAME}.lnk" "${GNM_ROOT}\bin\gnumeric.exe" CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\${GNM_APPNAME} Help.lnk" "${GNM_ROOT}\${GNM_HELP}" CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Uninstall.lnk" "${GNM_ROOT}\bin\uninst.exe" SectionEnd Section -Post SetOutPath "$INSTDIR" WriteUninstaller "${GNM_ROOT}\bin\uninst.exe" WriteRegStr SHCTX "${GNM_UNINST_KEY}" "DisplayName" "$(^Name)" WriteRegStr SHCTX "${GNM_UNINST_KEY}" "UninstallString" "${GNM_ROOT}\bin\uninst.exe" WriteRegStr SHCTX "${GNM_UNINST_KEY}" "DisplayVersion" "${GNM_VERSION_FULL}" WriteRegStr SHCTX "${GNM_UNINST_KEY}" "${GNM_STARTMENU_REG_VAL}" "$ICONS_GROUP" WriteRegStr SHCTX "${GNM_UNINST_KEY}" "Context" "$ISADMIN" WriteRegStr SHCTX "${GNM_UNINST_KEY}" "RootDir" "$INSTDIR" SectionEnd ; Section descriptions !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} "" !insertmacro MUI_FUNCTION_DESCRIPTION_END LangString TEXT_IO_TITLE_OP1 ${LANG_ENGLISH} "Install Option" LangString TEXT_IO_SUBTITLE_OP1 ${LANG_ENGLISH} "You can choose to install ${GNM_NAME} for anyone who uses this computer or only you." Function CustomPageShortcut ClearErrors UserInfo::GetName IfErrors Win9x Pop $0 UserInfo::GetAccountType Pop $1 StrCmp $1 "Admin" 0 not_admin Win9x: !insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE_OP1)" "$(TEXT_IO_SUBTITLE_OP1)" !insertmacro MUI_INSTALLOPTIONS_DISPLAY "op1.ini" !insertmacro MUI_INSTALLOPTIONS_READ $INI_VALUE "op1.ini" "Field 2" "State" StrCmp $INI_VALUE "1" 0 not_admin StrCpy $ISADMIN "1" SetShellVarContext all Goto done not_admin: StrCpy $ISADMIN "0" SetShellVarContext current done: FunctionEnd Function .onInit InitPluginsDir ; !insertmacro MUI_INSTALLOPTIONS_EXTRACT "op1.ini" ; !insertmacro MUI_INSTALLOPTIONS_EXTRACT "op3.ini" FunctionEnd Function un.onInit MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove $(^Name) and all of its components?" IDYES +2 Abort FunctionEnd Function un.onUninstSuccess HideWindow MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer." FunctionEnd Section Uninstall Push $1 ReadRegStr $INSTDIR SHCTX "${GNM_UNINST_KEY}" "RootDir" SetOutPath "$INSTDIR" RMDir /r /REBOOTOK "${GNM_ROOT}" ReadRegStr $ISADMIN SHCTX "${GNM_UNINST_KEY}" "Context" StrCmp $ISADMIN "1" 0 +2 SetShellVarContext all ReadRegStr $ICONS_GROUP SHCTX "${GNM_UNINST_KEY}" "${GNM_STARTMENU_REG_VAL}" Delete "$SMPROGRAMS\$ICONS_GROUP\${GNM_APPNAME}.lnk" Delete "$SMPROGRAMS\$ICONS_GROUP\${GNM_APPNAME} Help.lnk" Delete "$SMPROGRAMS\$ICONS_GROUP\Uninstall.lnk" RMDir "$SMPROGRAMS\$ICONS_GROUP" GetFullPathName /SHORT $SHORTINSTDIR ${GNM_ROOT} DeleteRegKey SHCTX "${GNM_UNINST_KEY}" ReadRegStr $1 SHCTX "Software\GNOME\${GNM_NAME}" "Path" StrCmp $1 "${GNM_ROOT}" 0 +2 DeleteRegValue SHCTX "Software\GNOME\${GNM_NAME}" "Path" DeleteRegKey /ifempty SHCTX "Software\GNOME\${GNM_NAME}" DeleteRegKey /ifempty SHCTX "Software\GNOME" # SetAutoClose true Pop $1 SectionEnd