mirror of
https://github.com/leozide/leocad
synced 2024-11-16 07:47:27 +01:00
148 lines
4.6 KiB
Text
148 lines
4.6 KiB
Text
!include "MUI2.nsh"
|
|
|
|
; The name of the installer
|
|
Name "LeoCAD"
|
|
|
|
; The file to write
|
|
;OutFile "leocad-setup.exe"
|
|
|
|
; Request application privileges for Windows Vista
|
|
;RequestExecutionLevel admin
|
|
|
|
; Build Unicode installer
|
|
Unicode True
|
|
|
|
; The default installation directory
|
|
InstallDir $PROGRAMFILES64\LeoCAD
|
|
|
|
; Registry key to check for directory (so if you install again, it will
|
|
; overwrite the old one automatically)
|
|
InstallDirRegKey HKLM "Software\LeoCAD Software\LeoCAD" "InstallFolder"
|
|
|
|
; Icon "setup.ico"
|
|
|
|
; !define MUI_ICON "setup.ico"
|
|
; !define MUI_UNICON "setup.ico"
|
|
|
|
SetCompressor /SOLID lzma
|
|
|
|
|
|
;Interface Settings
|
|
|
|
!define MUI_HEADERIMAGE
|
|
!define MUI_ABORTWARNING
|
|
|
|
|
|
;Pages
|
|
|
|
!insertmacro MUI_PAGE_WELCOME
|
|
!insertmacro MUI_PAGE_COMPONENTS
|
|
!insertmacro MUI_PAGE_DIRECTORY
|
|
!insertmacro MUI_PAGE_INSTFILES
|
|
!define MUI_FINISHPAGE_RUN "$INSTDIR\LeoCAD.exe"
|
|
!insertmacro MUI_PAGE_FINISH
|
|
|
|
!insertmacro MUI_UNPAGE_WELCOME
|
|
!insertmacro MUI_UNPAGE_CONFIRM
|
|
!insertmacro MUI_UNPAGE_INSTFILES
|
|
!insertmacro MUI_UNPAGE_FINISH
|
|
|
|
!insertmacro MUI_LANGUAGE "English"
|
|
|
|
|
|
;Installer Sections
|
|
|
|
Section "Application Files" SecLeoCAD
|
|
|
|
SectionIn RO
|
|
SetOutPath "$INSTDIR"
|
|
|
|
File /r /x library.bin "appdir\*.*"
|
|
|
|
;Register file extension
|
|
WriteRegStr HKCR ".lcd" "" "LeoCAD.Project"
|
|
WriteRegStr HKCR ".lcd\ShellNew" "NullFile" ""
|
|
WriteRegStr HKCR "LeoCAD.Project" "" "LeoCAD Project"
|
|
WriteRegStr HKCR "LeoCAD.Project\DefaultIcon" "" "$INSTDIR\LeoCAD.exe,0"
|
|
WriteRegStr HKCR "LeoCAD.Project\shell" "" "open"
|
|
WriteRegStr HKCR "LeoCAD.Project\shell\open\command" "" '"$INSTDIR\LeoCAD.exe" "%1"'
|
|
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
|
|
|
|
IfFileExists "$INSTDIR\vc_redist.x64.exe" VcRedist64Exists PastVcRedist64Check
|
|
VcRedist64Exists:
|
|
ExecWait '"$INSTDIR\vc_redist.x64.exe" /quiet /norestart'
|
|
PastVcRedist64Check:
|
|
|
|
;Store installation folder
|
|
;WriteRegStr HKLM "Software\LeoCAD Software\LeoCAD" "InstallFolder" $INSTDIR
|
|
|
|
CreateShortCut "$SMPROGRAMS\LeoCAD.lnk" "$INSTDIR\LeoCAD.exe"
|
|
|
|
;Create uninstaller
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LeoCAD" "DisplayName" "LeoCAD"
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LeoCAD" "DisplayVersion" $%VERSION%
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LeoCAD" "Publisher" "LeoCAD.org"
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LeoCAD" "DisplayIcon" '"$INSTDIR\LeoCAD.exe"'
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LeoCAD" "UninstallString" '"$INSTDIR\uninstall.exe"'
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LeoCAD" "URLUpdateInfo" "https://www.leocad.org"
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LeoCAD" "URLInfoAbout" "https://www.leocad.org"
|
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LeoCAD" "NoModify" 1
|
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LeoCAD" "NoRepair" 1
|
|
|
|
!include "FileFunc.nsh"
|
|
${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2
|
|
IntFmt $0 "0x%08X" $0
|
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LeoCAD" "EstimatedSize" "$0"
|
|
|
|
WriteUninstaller "$INSTDIR\Uninstall.exe"
|
|
|
|
SectionEnd
|
|
|
|
Section "Parts Library" SecLibrary
|
|
|
|
SetOutPath "$INSTDIR"
|
|
|
|
File "appdir\library.bin"
|
|
|
|
SectionEnd
|
|
|
|
;--------------------------------
|
|
;Descriptions
|
|
|
|
;Language strings
|
|
LangString DESC_SecLeoCAD ${LANG_ENGLISH} "Application Files (required)"
|
|
LangString DESC_SecLibrary ${LANG_ENGLISH} "Library of parts that represent those produced by the LEGO company and created by the LDraw community"
|
|
|
|
;Assign language strings to sections
|
|
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${SecLeoCAD} $(DESC_SecLeoCAD)
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${SecLibrary} $(DESC_SecLibrary)
|
|
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
|
|
|
;--------------------------------
|
|
;Uninstaller Section
|
|
|
|
Section "Uninstall"
|
|
|
|
Delete "$SMPROGRAMS\LeoCAD.lnk"
|
|
Delete "$INSTDIR\Uninstall.exe"
|
|
|
|
Delete "$INSTDIR\LeoCAD.exe"
|
|
Delete "$INSTDIR\LeoCAD.hlp"
|
|
Delete "$INSTDIR\LeoCAD.cnt"
|
|
Delete "$INSTDIR\readme.txt"
|
|
Delete "$INSTDIR\library.bin"
|
|
Delete "$INSTDIR\povconsole32-sse2.exe"
|
|
Delete "$INSTDIR\vc_redist.x64.exe"
|
|
|
|
RMDir "$INSTDIR"
|
|
|
|
DeleteRegKey HKCR ".lcd"
|
|
DeleteRegKey HKCR "LeoCAD.Project"
|
|
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
|
|
|
|
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LeoCAD"
|
|
DeleteRegKey HKLM "Software\LeoCAD Software\LeoCAD\InstallFolder"
|
|
DeleteRegKey /ifempty HKCU "Software\LeoCAD Software\LeoCAD"
|
|
|
|
SectionEnd
|