diff options
author | Enrico Tassi <gareuselesinge@debian.org> | 2015-01-25 14:42:51 +0100 |
---|---|---|
committer | Enrico Tassi <gareuselesinge@debian.org> | 2015-01-25 14:42:51 +0100 |
commit | 7cfc4e5146be5666419451bdd516f1f3f264d24a (patch) | |
tree | e4197645da03dc3c7cc84e434cc31d0a0cca7056 /dev/nsis/coq.nsi | |
parent | 420f78b2caeaaddc6fe484565b2d0e49c66888e5 (diff) |
Imported Upstream version 8.5~beta1+dfsg
Diffstat (limited to 'dev/nsis/coq.nsi')
-rwxr-xr-x | dev/nsis/coq.nsi | 231 |
1 files changed, 231 insertions, 0 deletions
diff --git a/dev/nsis/coq.nsi b/dev/nsis/coq.nsi new file mode 100755 index 00000000..90e3fdaa --- /dev/null +++ b/dev/nsis/coq.nsi @@ -0,0 +1,231 @@ +; This script is used to build the Windows install program for Coq. + +;NSIS Modern User Interface +;Written by Joost Verburg +;Modified by Julien Narboux and Pierre Letouzey and Enrico Tassi + +;SetCompress off +SetCompressor lzma +; Comment out after debuging. + +; The VERSION should be passed as an argument at compile time using : +; + +!define MY_PRODUCT "Coq" ;Define your own software name here +!define COQ_SRC_PATH "..\.." +!define OUTFILE "coq-installer-${VERSION}.exe" + +!include "MUI2.nsh" +!include "FileAssociation.nsh" + +;-------------------------------- +;Configuration + + Name "Coq" + + ;General + OutFile "${OUTFILE}" + + ;Folder selection page + InstallDir "C:\${MY_PRODUCT}" + + ;Remember install folder + InstallDirRegKey HKCU "Software\${MY_PRODUCT}" "" + +;-------------------------------- +;Modern UI Configuration + + !insertmacro MUI_PAGE_WELCOME + !insertmacro MUI_PAGE_LICENSE "${COQ_SRC_PATH}/LICENSE" + !insertmacro MUI_PAGE_COMPONENTS + !define MUI_DIRECTORYPAGE_TEXT_TOP "Select where to install Coq. The path MUST NOT include spaces." + !insertmacro MUI_PAGE_DIRECTORY + !insertmacro MUI_PAGE_INSTFILES + !insertmacro MUI_PAGE_FINISH + + !insertmacro MUI_UNPAGE_WELCOME + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES + !insertmacro MUI_UNPAGE_FINISH + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" + +;-------------------------------- +;Language Strings + + ;Description + LangString DESC_1 ${LANG_ENGLISH} "This package contains Coq and CoqIDE." + LangString DESC_2 ${LANG_ENGLISH} "This package contains the development files needed in order to build a plugin for Coq." + +;-------------------------------- +; Check for white spaces +Function .onVerifyInstDir + StrLen $0 "$INSTDIR" + StrCpy $1 0 + ${While} $1 < $0 + StrCpy $3 $INSTDIR 1 $1 + StrCmp $3 " " SpacesInPath + IntOp $1 $1 + 1 + ${EndWhile} + Goto done + SpacesInPath: + Abort + done: +FunctionEnd + +;-------------------------------- +;Installer Sections + + +Section "Coq" Sec1 + + SetOutPath "$INSTDIR\" + + SetOutPath "$INSTDIR\bin" + File ${COQ_SRC_PATH}\bin\*.exe + ; make.exe and its dll + File ${COQ_SRC_PATH}\bin\make.exe + File ${COQ_SRC_PATH}\bin\libiconv2.dll + File ${COQ_SRC_PATH}\bin\libintl3.dll + + SetOutPath "$INSTDIR\lib\theories" + File /r ${COQ_SRC_PATH}\theories\*.vo + File /r ${COQ_SRC_PATH}\theories\*.v + File /r ${COQ_SRC_PATH}\theories\*.glob + File /r ${COQ_SRC_PATH}\theories\*.cmi + File /r ${COQ_SRC_PATH}\theories\*.cmxs + SetOutPath "$INSTDIR\lib\plugins" + File /r ${COQ_SRC_PATH}\plugins\*.vo + File /r ${COQ_SRC_PATH}\plugins\*.v + File /r ${COQ_SRC_PATH}\plugins\*.glob + File /r ${COQ_SRC_PATH}\plugins\*.cmi + File /r ${COQ_SRC_PATH}\plugins\*.cmxs + SetOutPath "$INSTDIR\lib\tools\coqdoc" + File ${COQ_SRC_PATH}\tools\coqdoc\coqdoc.sty + File ${COQ_SRC_PATH}\tools\coqdoc\coqdoc.css + SetOutPath "$INSTDIR\emacs" + File ${COQ_SRC_PATH}\tools\*.el + SetOutPath "$INSTDIR\man" + File ${COQ_SRC_PATH}\man\*.1 + SetOutPath "$INSTDIR\lib\toploop" + File ${COQ_SRC_PATH}\stm\*top.cmxs + File ${COQ_SRC_PATH}\ide\*top.cmxs + + ; CoqIDE + SetOutPath "$INSTDIR\ide\" + File ${COQ_SRC_PATH}\ide\*.png + SetOutPath "$INSTDIR\share\gtksourceview-2.0\language-specs\" + File ${COQ_SRC_PATH}\ide\*.lang + File ${COQ_SRC_PATH}\ide\*.xml + + ; Start Menu Entries + SetOutPath "$INSTDIR" + CreateShortCut "$SMPROGRAMS\Coq\CoqIde.lnk" "$INSTDIR\bin\coqide.exe" + + ${registerExtension} "$INSTDIR\bin\coqide.exe" ".v" "Coq Script File" + + SetOutPath "$INSTDIR" + File /r ${GTK_RUNTIME}\etc\gtk-2.0 + SetOutPath "$INSTDIR\bin" + File ${GTK_RUNTIME}\bin\*.dll + SetOutPath "$INSTDIR\lib" + File /r ${GTK_RUNTIME}\lib\gtk-2.0 ${GTK_RUNTIME}\lib\glib-2.0 + SetOutPath "$INSTDIR\share" + File /r ${GTK_RUNTIME}\share\themes + File /r ${GTK_RUNTIME}\share\gtksourceview-2.0 + + ;Store install folder + WriteRegStr HKCU "Software\${MY_PRODUCT}" "" $INSTDIR + + ;Create uninstaller + WriteUninstaller "$INSTDIR\Uninstall.exe" + WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Coq" \ + "DisplayName" "Coq Version ${VERSION}" + WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Coq" \ + "UninstallString" '"$INSTDIR\Uninstall.exe"' + + WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Coq" \ + "DisplayVersion" "${VERSION}" + + WriteRegDWORD HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Coq" \ + "NoModify" "1" + WriteRegDWORD HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Coq" \ + "NoRepair" "1" + + WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Coq" \ + "URLInfoAbout" "http://coq.inria.fr" + +; Start Menu Entries + +; for the path in the .lnk + SetOutPath "$INSTDIR" + + CreateDirectory "$SMPROGRAMS\Coq" + CreateShortCut "$SMPROGRAMS\Coq\Coq.lnk" "$INSTDIR\bin\coqtop.exe" + WriteINIStr "$SMPROGRAMS\Coq\The Coq HomePage.url" "InternetShortcut" "URL" "http://coq.inria.fr" + WriteINIStr "$SMPROGRAMS\Coq\The Coq Standard Library.url" "InternetShortcut" "URL" "http://coq.inria.fr/library" + CreateShortCut "$SMPROGRAMS\Coq\Uninstall.lnk" "$INSTDIR\Uninstall.exe" "" "$INSTDIR\Uninstall.exe" 0 + +SectionEnd + +Section "Coq files for plugin developers" Sec2 + + SetOutPath "$INSTDIR\lib\" + File /r ${COQ_SRC_PATH}\*.cmxa + File /r ${COQ_SRC_PATH}\*.cmi + File /r ${COQ_SRC_PATH}\*.cma + File /r ${COQ_SRC_PATH}\*.cmo + File /r ${COQ_SRC_PATH}\*.a + File /r ${COQ_SRC_PATH}\*.o + +SectionEnd + +;-------------------------------- +;Descriptions + +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${Sec1} $(DESC_1) + !insertmacro MUI_DESCRIPTION_TEXT ${Sec2} $(DESC_2) +!insertmacro MUI_FUNCTION_DESCRIPTION_END + +;-------------------------------- +;Uninstaller Section + +Section "Uninstall" + +;; We keep the settings +;; Delete "$INSTDIR\config\coqide-gtk2rc" + + RMDir /r "$INSTDIR\bin" + RMDir /r "$INSTDIR\dev" + RMDir /r "$INSTDIR\etc" + RMDir /r "$INSTDIR\lib" + RMDir /r "$INSTDIR\share" + + Delete "$INSTDIR\man\*.1" + RMDir "$INSTDIR\man" + + Delete "$INSTDIR\emacs\*.el" + RMDir "$INSTDIR\emacs" + +;; Start Menu + Delete "$SMPROGRAMS\Coq\Coq.lnk" + Delete "$SMPROGRAMS\Coq\CoqIde.lnk" + Delete "$SMPROGRAMS\Coq\Uninstall.lnk" + Delete "$SMPROGRAMS\Coq\The Coq HomePage.url" + Delete "$SMPROGRAMS\Coq\The Coq Standard Library.url" + Delete "$INSTDIR\Uninstall.exe" + + DeleteRegKey /ifempty HKCU "Software\${MY_PRODUCT}" + + DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Coq" + DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Coq" + RMDir "$INSTDIR" + RMDir "$SMPROGRAMS\Coq" + + ${unregisterExtension} ".v" "Coq Script File" + +SectionEnd |