You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

171 lines
4.7 KiB

;;;;;;;;;;;;
; Includes ;
;;;;;;;;;;;;
!include MUI2.nsh
!include WinVer.nsh
!include x64.nsh
!include StrFunc.nsh
; Enable StrStr
${StrStr}
;;;;;;;;;;;;;;;;;;;;;;
; Installer Settings ;
;;;;;;;;;;;;;;;;;;;;;;
BrandingText "Korman"
CRCCheck on
OutFile "korman.exe"
RequestExecutionLevel admin
;;;;;;;;;;;;;;;;;;;;
; Meta Information ;
;;;;;;;;;;;;;;;;;;;;
Name "Korman"
VIAddVersionKey "CompanyName" "Guild of Writers"
VIAddVersionKey "FileDescription" "Blender Plugin for Plasma Age Creation"
VIAddVersionKey "FileVersion" "0"
VIAddVersionKey "LegalCopyright" "Guild of Writers"
VIAddVersionKey "ProductName" "Korman"
VIProductVersion "0.0.0.0"
;;;;;;;;;;;;;;;;;;;;;
; MUI Configuration ;
;;;;;;;;;;;;;;;;;;;;;
!define MUI_ABORTWARNING
!define MUI_ICON "Icon.ico"
!define MUI_FINISHPAGE_RUN "$INSTDIR\..\blender.exe"
; Custom Images :D
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP "Header.bmp"
!define MUI_WELCOMEFINISHPAGE_BITMAP "WelcomeFinish.bmp"
;;;;;;;;;;;;;
; Variables ;
;;;;;;;;;;;;;
Var BlenderDir
Var BlenderVer
;;;;;;;;;;;;;
; Functions ;
;;;;;;;;;;;;;
; Inform the user if their OS is unsupported.
Function .onInit
${IfNot} ${AtLeastWinVista}
MessageBox MB_YESNO|MB_ICONEXCLAMATION \
"Windows Vista or above is required to run Korman$\r$\n\
You may install the client but will be unable to run it on this OS.$\r$\n$\r$\n\
Do you still wish to install?" \
/SD IDYES IDNO do_quit
${EndIf}
Goto done
do_quit:
Quit
done:
FunctionEnd
; Checks the install dir...
Function .onVerifyInstDir
IfFileExists "$INSTDIR\..\blender.exe" verify_python
Abort
verify_python:
IfFileExists "$INSTDIR\..\${PYTHON_DLL}" done
Abort
done:
FunctionEnd
; Tries to find the Blender directory in the registry.
Function FindBlenderDir
; Try to grab the Blender directory from the default registry...
ReadRegStr $BlenderDir HKLM "Software\BlenderFoundation" "Install_Dir"
ReadRegStr $BlenderVer HKLM "Software\BlenderFoundation" "ShortVersion"
; Bad news, old chap, certain x86 Blender versions will write their registry keys to the
; x64 registry. Dang! It looks like we will have to try to hack around that. But only if
; we got nothing...
${If} ${RunningX64}
StrCmp $BlenderDir "" try_again winning
try_again:
SetRegView 64
ReadRegStr $BlenderDir HKLM "Software\BlenderFoundation" "Install_Dir"
ReadRegStr $BlenderVer HKLM "Software\BlenderFoundation" "ShortVersion"
SetRegView 32
StrCmp $BlenderDir "" total_phailure
; Before we suggest this, let's make sure it's not Program Files (x64) version unleashed(TM)
StrCpy $0 "$PROGRAMFILES64\" ; Otherwise, it would match ALL Program Files directories...
${StrStr} $1 $BlenderDir $0
StrCmp $1 "" winning total_phailure
${EndIf}
winning:
StrCpy $INSTDIR "$BlenderDir\$BlenderVer"
Goto done
total_phailure:
StrCpy $INSTDIR ""
Goto done
done:
FunctionEnd
;;;;;;;;;
; Pages ;
;;;;;;;;;
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "GPLv3.txt"
!define MUI_PAGE_CUSTOMFUNCTION_PRE FindBlenderDir
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
;;;;;;;;;;;;;
; Languages ;
;;;;;;;;;;;;;
!insertmacro MUI_LANGUAGE "English"
;;;;;;;;;;;;
; Sections ;
;;;;;;;;;;;;
Section "Runtimes"
SetOutPath "$TEMP\Korman"
File "Files\vcredist_x86.exe"
ExecWait "$TEMP\Korman\vcredist_x86.exe /q /norestart"
RMdir "$TEMP\Korman"
SectionEnd
Section "Files"
; The entire Korman
SetOutPath "$INSTDIR\scripts\addons"
File /r /x "__pycache__" /x "*.pyc" /x "*.komodo*" "..\korman"
; Libraries
SetOutPath "$INSTDIR\python\lib\site-packages"
File "Files\HSPlasma.dll"
File "Files\PyHSPlasma.pyd"
File "Files\NxCooking.dll"
File "Files\_korlib.pyd"
WriteRegStr HKLM "Software\Korman" "" $INSTDIR
WriteUninstaller "$INSTDIR\korman_uninstall.exe"
SectionEnd
Section "Uninstall"
Delete "$INSTDIR\korman_uninstall.exe"
RMDir /r "$INSTDIR\scripts\addons\korman"
Delete "$INSTDIR\python\lib\site-packages\HSPlasma.dll"
Delete "$INSTDIR\python\lib\site-packages\PyHSPlasma.pyd"
Delete "$INSTDIR\python\lib\site-packages\NxCooking.dll"
Delete "$INSTDIR\python\lib\site-packages\_korlib.pyd"
DeleteRegKey /ifempty HKLM "Software\Korman"
SectionEnd