File:  [Public] / Amaya / amaya-wx_release.nsi
Revision 1.43: download - view: text, annotated - select for diffs
Fri Dec 5 15:21:22 2008 UTC (15 years, 5 months ago) by vatton
Branches: MAIN
CVS tags: HEAD, Amaya-11-0
Irene

;--------------------------------
;Include Modern UI

  !include "MUI.nsh"


;--------------------------------
;General

  ;Name and file
  !define VERSION "11.0"
  Name "Amaya"
  OutFile "amaya-WinXP-${VERSION}.exe"
  
  ;Use lzma to compress (better than zip)
  SetCompressor lzma

  ;Default installation folder
  InstallDir "$PROGRAMFILES\Amaya"
  
  ;Get installation folder from registry if available
  InstallDirRegKey HKCU "Software\Amaya" ""

;--------------------------------
;Variables


  Var STARTMENU_FOLDER
;--------------------------------
;Interface Settings

  !define MUI_ABORTWARNING

;--------------------------------
;Language Selection Dialog Settings

  ;Remember the installer language
  !define MUI_LANGDLL_REGISTRY_ROOT "HKCU" 
  !define MUI_LANGDLL_REGISTRY_KEY "Software\Amaya" 
  !define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"

;--------------------------------
;Pages

  !insertmacro MUI_PAGE_LICENSE "amaya\COPYRIGHT"
  !insertmacro MUI_PAGE_COMPONENTS
  !insertmacro MUI_PAGE_DIRECTORY

  ;Start Menu Folder Page Configuration
  !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" 
  !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Amaya" 
  !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
  !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER

  !insertmacro MUI_PAGE_INSTFILES
  
  !define MUI_FINISHPAGE_LINK "Visit the Amaya site for the latest news, FAQs and support"
  !define MUI_FINISHPAGE_LINK_LOCATION "http://www.w3.org/Amaya"

  !define MUI_FINISHPAGE_RUN "$INSTDIR\WindowsWX\bin\amaya.exe"
  !define MUI_FINISHPAGE_NOREBOOTSUPPORT
  
  !insertmacro MUI_PAGE_FINISH

  !insertmacro MUI_UNPAGE_CONFIRM
  !insertmacro MUI_UNPAGE_INSTFILES

;--------------------------------
;Languages

  !insertmacro MUI_LANGUAGE "English"
  !insertmacro MUI_LANGUAGE "French"
  !insertmacro MUI_LANGUAGE "German"
  !insertmacro MUI_LANGUAGE "Spanish"
  !insertmacro MUI_LANGUAGE "SimpChinese"
  !insertmacro MUI_LANGUAGE "TradChinese"
;  !insertmacro MUI_LANGUAGE "Japanese"
;  !insertmacro MUI_LANGUAGE "Korean"
  !insertmacro MUI_LANGUAGE "Italian"
;  !insertmacro MUI_LANGUAGE "Dutch"
;  !insertmacro MUI_LANGUAGE "Danish"
;  !insertmacro MUI_LANGUAGE "Swedish"
;  !insertmacro MUI_LANGUAGE "Norwegian"
  !insertmacro MUI_LANGUAGE "Finnish"
  !insertmacro MUI_LANGUAGE "Greek"
  !insertmacro MUI_LANGUAGE "Russian"
  !insertmacro MUI_LANGUAGE "Portuguese"
;  !insertmacro MUI_LANGUAGE "PortugueseBR"
;  !insertmacro MUI_LANGUAGE "Polish"
;  !insertmacro MUI_LANGUAGE "Ukrainian"
;  !insertmacro MUI_LANGUAGE "Czech"
;  !insertmacro MUI_LANGUAGE "Slovak"
;  !insertmacro MUI_LANGUAGE "Croatian"
;  !insertmacro MUI_LANGUAGE "Bulgarian"
  !insertmacro MUI_LANGUAGE "Hungarian"
;  !insertmacro MUI_LANGUAGE "Thai"
;  !insertmacro MUI_LANGUAGE "Romanian"
;  !insertmacro MUI_LANGUAGE "Latvian"
;  !insertmacro MUI_LANGUAGE "Macedonian"
;  !insertmacro MUI_LANGUAGE "Estonian"
  !insertmacro MUI_LANGUAGE "Turkish"
;  !insertmacro MUI_LANGUAGE "Lithuanian"
;  !insertmacro MUI_LANGUAGE "Catalan"
;  !insertmacro MUI_LANGUAGE "Slovenian"
;  !insertmacro MUI_LANGUAGE "Serbian"
;  !insertmacro MUI_LANGUAGE "SerbianLatin"
;  !insertmacro MUI_LANGUAGE "Arabic"
;  !insertmacro MUI_LANGUAGE "Farsi"
;  !insertmacro MUI_LANGUAGE "Hebrew"
;  !insertmacro MUI_LANGUAGE "Indonesian"
;  !insertmacro MUI_LANGUAGE "Mongolian"
;  !insertmacro MUI_LANGUAGE "Luxembourgish"
;  !insertmacro MUI_LANGUAGE "Albanian"

;--------------------------------
;Reserve Files
  
  ;These files should be inserted before other files in the data block
  ;Keep these lines before any File command
  ;Only for solid compression (by default, solid compression is enabled for BZIP2 and LZMA)
  
  !insertmacro MUI_RESERVEFILE_LANGDLL

;--------------------------------
;Installer Sections

Section "Amaya" SecAmaya


  SetDetailsPrint textonly
  DetailPrint "Testing supported OS..."
  SetDetailsPrint listonly

 ;XXXXXXXXXXXXXXXXXXXXXXXXXX
 ;Test the platform
 ;XXXXXXXXXXXXXXXXXXXXXXXXXX
   ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
   StrCmp $R0 "" lbl_notwinnt lbl_winnt
   
   ; we are not NT
   lbl_notwinnt:
   ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber
 
    
   StrCpy $R1 $R0 3
 
   StrCmp $R1 '4.0' lbl_win32_95
   StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98
 
   lbl_win32_95:
     Abort "Win95 not supported"
 
   lbl_win32_98:
     Abort "Win98 not supported"
 
   lbl_win32_ME:
     Abort "WinME not supported"
 
   lbl_winnt:
     StrCpy $R1 $R0 3
     StrCpy $R0 'XP'
     Goto lbl_done
 

   lbl_done:
  ;XXXXXXXXXXXXXXXXXXXXXXXXXX

  ;This section is required : readonly mode
  SectionIn RO

  SetDetailsPrint textonly
  DetailPrint "Installing Amaya binaries and wxWidgets DLL"
  SetDetailsPrint listonly

  SetOutPath "$INSTDIR\WindowsWX\bin"
  File WindowsWX\bin\amaya.exe
  File WindowsWX\bin\wxmsw*u_xrc_vc_custom.dll
  File WindowsWX\bin\wxmsw*u_html_vc_custom.dll
  File WindowsWX\bin\wxmsw*u_core_vc_custom.dll
  File WindowsWX\bin\wxmsw*u_adv_vc_custom.dll
  File WindowsWX\bin\wxmsw*u_aui_vc_custom.dll
  File WindowsWX\bin\wxmsw*u_gl_vc_custom.dll
  File WindowsWX\bin\wxbase*u_vc_custom.dll
  File WindowsWX\bin\wxbase*u_net_vc_custom.dll
  File WindowsWX\bin\wxbase*u_xml_vc_custom.dll
  File WindowsWX\bin\thotprinter.dll

  SetDetailsPrint textonly
  DetailPrint "Installing Amaya resources : icons, dialogues"
  SetDetailsPrint listonly

  SetOutPath "$INSTDIR\resources\icons\misc"
  File resources\icons\misc\*.png
  File resources\icons\misc\*.gif
  File resources\icons\misc\*.ico
  SetOutPath "$INSTDIR\resources\icons\16x16"
  File resources\icons\16x16\*.png
  File resources\icons\16x16\*.ico
  SetOutPath "$INSTDIR\resources\icons\22x22"
  File resources\icons\22x22\*.png
  SetOutPath "$INSTDIR\resources\svg"
  File resources\svg\*.png
  File resources\svg\*.svg
  SetOutPath "$INSTDIR\resources\svg\balloons"
  File resources\svg\balloons\*.png
  File resources\svg\balloons\*.svg
  SetOutPath "$INSTDIR\resources\svg\block_arrows"
  File resources\svg\block_arrows\*.png
  File resources\svg\block_arrows\*.svg
  SetOutPath "$INSTDIR\resources\svg\chemistry"
  File resources\svg\chemistry\*.png
  File resources\svg\chemistry\*.svg
  SetOutPath "$INSTDIR\resources\svg\circuit_diagram"
  File resources\svg\circuit_diagram\*.png
  File resources\svg\circuit_diagram\*.svg
  SetOutPath "$INSTDIR\resources\svg\logic_gates"
  File resources\svg\logic_gates\*.png
  File resources\svg\logic_gates\*.svg
  SetOutPath "$INSTDIR\resources\svg\polygons_and_stars"
  File resources\svg\polygons_and_stars\*.png
  File resources\svg\polygons_and_stars\*.svg
  SetOutPath "$INSTDIR\resources\xrc"
  File resources\xrc\*.xrc

  
  SetOutPath "$INSTDIR\amaya\wxdialog"
  File amaya\wxdialog\appicon.ico
  File amaya\wxdialog\amaya.rc

  SetDetailsPrint textonly
  DetailPrint "Installing Amaya schemas"
  SetDetailsPrint listonly

  SetOutPath "$INSTDIR\amaya"
  File amaya\COPYRIGHT
  File amaya\*.png
  File amaya\*.gif
  File amaya\*.css
  File amaya\*.html*
  File amaya\*.PRS
  File amaya\*.STR
  File amaya\*.TRA
  File amaya\*.conf
  File amaya\*.en
  File amaya\*.trans*
  File amaya\*.ico
  File amaya\*.svg

  SetDetailsPrint textonly
  DetailPrint "Installing annotlib schemas"
  SetDetailsPrint listonly

  SetOutPath "$INSTDIR\annotlib"
  File annotlib\*.png
  File annotlib\*.gif
  File annotlib\*.PRS
  File annotlib\*.STR
  File annotlib\*.TRA
  File annotlib\*.en

  SetDetailsPrint textonly
  DetailPrint "Installing Amaya config files"
  SetDetailsPrint listonly


  SetOutPath "$INSTDIR\config"
  File config\*-amayadialogue
  File config\*-libdialogue
  File config\*-amayamsg
  File config\*-libdialogue
  File config\fonts.*
  File config\amaya.kb
  File config\amaya.profiles
  File config\*.rdf
  File config\*.css
  File config\annot.schemas
  File config\win-thot.rc
  File config\rdfa.dat
  File config\rdfa_list.dat

  SetDetailsPrint textonly
  DetailPrint "Installing Amaya dictionnaries"
  SetDetailsPrint listonly

  SetOutPath "$INSTDIR\dicopar"
  File dicopar\alphabet
  File dicopar\*.ptn
  File dicopar\clavier
  File dicopar\*.dic

  SetDetailsPrint textonly
  DetailPrint "Installing Amaya documentation"
  SetDetailsPrint listonly

  SetOutPath "$INSTDIR\doc\WX"
  File doc\WX\*
  SetOutPath "$INSTDIR\doc\WX\HTML-elements"
  File doc\WX\HTML-elements\*
  SetOutPath "$INSTDIR\doc\images"
  File doc\images\*

  SetDetailsPrint textonly
  DetailPrint "Installing Amaya ttf fonts"
  SetDetailsPrint listonly

  SetOutPath "$INSTDIR\fonts"
  File fonts\*

  SetDetailsPrint textonly
  DetailPrint "Writting registry keys"
  SetDetailsPrint listonly

  ;Store installation folder
  WriteRegStr HKCU "Software\Amaya" "" $INSTDIR 
  WriteRegExpandStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Amaya" "UninstallString" '"$INSTDIR\Uninstall.exe"'
  WriteRegExpandStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Amaya" "InstallLocation" "$INSTDIR"
  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Amaya" "DisplayName" "Amaya"
  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Amaya" "DisplayIcon" "$INSTDIR\WindowsWX\bin\amaya.exe"
  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Amaya" "DisplayVersion" "${VERSION}"
  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Amaya" "URLInfoAbout" "http://www.w3.org/Amaya"

  ; Associate files to amaya
  WriteRegStr HKCR "Amaya" "" "Amaya Files"
  WriteRegStr HKCR "Amaya\DefaultIcon" "" "$INSTDIR\WindowsWX\bin\amaya.exe"
  ReadRegStr $R0 HKCR "Amaya\shell\open\command" ""
  StrCmp $R0 "" 0 no_amayaopen
    WriteRegStr HKCR "Amaya\shell" "" "open"
    WriteRegStr HKCR "Amaya\shell\open\command" "" '"$INSTDIR\WindowsWX\bin\amaya.exe" "%1"'
  no_amayaopen:
  
  ;Create uninstaller
  WriteUninstaller "$INSTDIR\Uninstall.exe"

  ;Install Amaya for all users
  SetShellVarContext all

  ;Start Menu
  !insertmacro MUI_STARTMENU_WRITE_BEGIN Application   
    ;Create shortcuts
    CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
    CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
    CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Amaya.lnk" "$INSTDIR\WindowsWX\bin\amaya.exe"
  !insertmacro MUI_STARTMENU_WRITE_END

  ;Create desktop link
  CreateShortCut "$DESKTOP\Amaya.lnk" "$INSTDIR\WindowsWX\bin\amaya.exe"
SectionEnd


SubSection "File association" SecFileAss

; --> .html
Section /o ".html (HyperText Markup Language)" SecAssHTML
  ReadRegStr $R0 HKCR ".html" ""
  StrCmp $R0 "Amaya" allready_amaya no_amaya
  no_amaya:
    WriteRegStr HKCR ".html" "AM_OLD_VALUE" $R0
  WriteRegStr HKCR ".html" "" "Amaya"
  allready_amaya:
SectionEnd

; --> .htm
Section /o ".htm (HyperText Markup Language)" SecAssHTM
  ReadRegStr $R0 HKCR ".htm" ""
  StrCmp $R0 "Amaya" allready_amaya no_amaya
  no_amaya:
    WriteRegStr HKCR ".htm" "AM_OLD_VALUE" $R0
    WriteRegStr HKCR ".htm" "" "Amaya"
  allready_amaya:
SectionEnd

; --> .xml
Section /o ".xml (eXtensible Markup Language)" SecAssXML
  ReadRegStr $R0 HKCR ".xml" ""
  StrCmp $R0 "Amaya" allready_amaya no_amaya
  no_amaya:
    WriteRegStr HKCR ".xml" "AM_OLD_VALUE" $R0
  WriteRegStr HKCR ".xml" "" "Amaya"
  allready_amaya:
SectionEnd

; --> .svg
Section /o ".svg (Scalable Vector Graphics)" SecAssSVG
  ReadRegStr $R0 HKCR ".svg" ""
  StrCmp $R0 "Amaya" allready_amaya no_amaya
  no_amaya:
    WriteRegStr HKCR ".svg" "AM_OLD_VALUE" $R0
  WriteRegStr HKCR ".svg" "" "Amaya"
  allready_amaya:
SectionEnd

; --> .mml
Section /o ".mml (MathML)" SecAssMML
  ReadRegStr $R0 HKCR ".mml" ""
  StrCmp $R0 "Amaya" allready_amaya no_amaya
  no_amaya:
    WriteRegStr HKCR ".mml" "AM_OLD_VALUE" $R0
  WriteRegStr HKCR ".mml" "" "Amaya"
  allready_amaya:
SectionEnd

; --> .css
Section /o ".css (Cascading Style Sheets)" SecAssCSS
  ReadRegStr $R0 HKCR ".css" ""
  StrCmp $R0 "Amaya" allready_amaya no_amaya
  no_amaya:
    WriteRegStr HKCR ".css" "AM_OLD_VALUE" $R0
  WriteRegStr HKCR ".css" "" "Amaya"
  allready_amaya:
SectionEnd

SubSectionEnd

;--------------------------------
;Installer Functions

Function .onInit

  !insertmacro MUI_LANGDLL_DISPLAY

FunctionEnd

;--------------------------------
;Descriptions

  ;USE A LANGUAGE STRING IF YOU WANT YOUR DESCRIPTIONS TO BE LANGAUGE SPECIFIC

  ;Assign descriptions to sections
  !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
    !insertmacro MUI_DESCRIPTION_TEXT ${SecAmaya} "Install main Amaya program (mandatory)."
    !insertmacro MUI_DESCRIPTION_TEXT ${SecFileAss} "Selects Amaya as the default application for files of these types."
  !insertmacro MUI_FUNCTION_DESCRIPTION_END

;--------------------------------
;Uninstaller Section

Section "Uninstall"

  SetDetailsPrint textonly
  DetailPrint "Uninstalling Amaya..."
  SetDetailsPrint listonly

  IfFileExists $INSTDIR\WindowsWX\bin\amaya.exe amaya_installed
    MessageBox MB_YESNO "It does not appear that Amaya is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)?" IDYES amaya_installed
    Abort "Uninstall aborted by user"
  amaya_installed:


  SetDetailsPrint textonly
  DetailPrint "Deleting Files..."
  SetDetailsPrint listonly
  ;Uninstall Amaya for all users
  SetShellVarContext all
  
  ReadRegStr $STARTMENU_FOLDER HKCU "Software\Amaya" "Start Menu Folder"
  IfFileExists "$SMPROGRAMS\$STARTMENU_FOLDER\Amaya.lnk" amaya_smp_installed
    Goto amaya_smp_notinstalled
  amaya_smp_installed:
  Delete "$SMPROGRAMS\$STARTMENU_FOLDER\Amaya.lnk"
  Delete "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk"
  RMDir "$SMPROGRAMS\$STARTMENU_FOLDER"
  Delete "$DESKTOP\Amaya.lnk"
  amaya_smp_notinstalled:

  RMDir /r "$INSTDIR"

  SetDetailsPrint textonly
  DetailPrint "Deleting Registry Keys..."
  SetDetailsPrint listonly

  DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Amaya"
  DeleteRegKey HKLM "Software\Amaya"
  DeleteRegKey HKCR "Amaya"
  DeleteRegKey HKCU "Software\Amaya"
  ; uninstall files associations
  ; --> .html
  ReadRegStr $R0 HKCR ".html" ""
  StrCmp $R0 "Amaya" 0 +3
    ReadRegStr $R0 HKCR ".html" "AM_OLD_VALUE"
    WriteRegStr HKCR ".html" "" $R0
  ; --> .htm
  ReadRegStr $R0 HKCR ".htm" ""
  StrCmp $R0 "Amaya" 0 +3
    ReadRegStr $R0 HKCR ".htm" "AM_OLD_VALUE"
    WriteRegStr HKCR ".htm" "" $R0
  ; --> .css
  ReadRegStr $R0 HKCR ".css" ""
  StrCmp $R0 "Amaya" 0 +3
    ReadRegStr $R0 HKCR ".css" "AM_OLD_VALUE"
    WriteRegStr HKCR ".css" "" $R0
  ; --> .svg
  ReadRegStr $R0 HKCR ".svg" ""
  StrCmp $R0 "Amaya" 0 +3
    ReadRegStr $R0 HKCR ".svg" "AM_OLD_VALUE"
    WriteRegStr HKCR ".svg" "" $R0
  ; --> .mml
  ReadRegStr $R0 HKCR ".mml" ""
  StrCmp $R0 "Amaya" 0 +3
    ReadRegStr $R0 HKCR ".mml" "AM_OLD_VALUE"
    WriteRegStr HKCR ".mml" "" $R0
  ; --> .xml
  ReadRegStr $R0 HKCR ".xml" ""
  StrCmp $R0 "Amaya" 0 +3
    ReadRegStr $R0 HKCR ".xml" "AM_OLD_VALUE"
    WriteRegStr HKCR ".xml" "" $R0

SectionEnd

;--------------------------------
;Uninstaller Functions

Function un.onInit

  !insertmacro MUI_UNGETLANGUAGE
  
FunctionEnd

Webmaster