mirror of https://github.com/H-uru/korman.git
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.
236 lines
6.6 KiB
236 lines
6.6 KiB
;;;;;;;;;;;; |
|
; Includes ; |
|
;;;;;;;;;;;; |
|
!include MUI2.nsh |
|
!include WinVer.nsh |
|
!include x64.nsh |
|
!include RegGuid.nsh |
|
|
|
;;;;;;;;;;;;;;;;;;;;;; |
|
; 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 ; |
|
;;;;;;;;;;;;; |
|
!define BlenderUpgradeCode "B767E4FD-7DE7-4094-B051-3AE62E13A17A" |
|
!define UninstallRegKey "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" |
|
!define UpgradeRegKey "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UpgradeCodes" |
|
|
|
Var BlenderDir |
|
Var BlenderDirScanned |
|
Var BlenderVer |
|
|
|
;;;;;;;;;;;;;;;;; |
|
; Install Types ; |
|
;;;;;;;;;;;;;;;;; |
|
InstType "Korman (32-bits)" |
|
InstType "Korman (64-bits)" |
|
InstType /NOCUSTOM |
|
|
|
;;;;;;;;;;;;; |
|
; 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 |
|
; Test for valid Blender |
|
IfFileExists "$INSTDIR\..\blender.exe" 0 fail |
|
IfFileExists "$INSTDIR\..\${PYTHON_DLL}" 0 fail |
|
|
|
; Try to guess if we're x64--it doesn't have BlendThumb.dll |
|
IfFileExists "$INSTDIR\..\BlendThumb64.dll" 0 done |
|
IfFileExists "$INSTDIR\..\BlendThumb.dll" blender_x86 blender_x64 |
|
|
|
fail: |
|
Abort |
|
|
|
blender_x86: |
|
SetCurInstType 0 |
|
Goto done |
|
blender_x64: |
|
SetCurInstType 1 |
|
Goto done |
|
|
|
done: |
|
FunctionEnd |
|
|
|
; Tries to find the Blender directory in the registry. |
|
Function FindBlenderDir |
|
; To prevent overwriting user data, we will only do this once |
|
StrCmp $BlenderDirScanned "" 0 done |
|
StrCpy $BlenderDirScanned "true" |
|
|
|
StrCpy $1 "" |
|
find_product_code: |
|
; Blender's CPack-generated MSI package has spewed mess into hidden registry keys. |
|
; We know what the upgrade guid is, so we will use that to find the install directory |
|
; and the Blender version. |
|
${MangleGuidForRegistry} ${BlenderUpgradeCode} $0 |
|
EnumRegValue $0 HKLM "${UpgradeRegKey}\$0" 0 |
|
|
|
; If we are on a 64-bit system, we might not have found the product code guid in the 32-bit registry |
|
; ergo, we will need to change over to that registry |
|
${If} ${RunningX64} |
|
IfErrors 0 find_uninstall_info |
|
StrCmp $1 "" 0 done |
|
StrCpy $1 "DEADBEEF" |
|
|
|
ClearErrors |
|
SetRegView 64 |
|
Goto find_product_code |
|
${Else} |
|
Goto done |
|
${EndIf} |
|
|
|
find_uninstall_info: |
|
; Read the Blender directory and the versions from the uninstall record |
|
${UnmangleGuidFromRegistry} $0 $1 |
|
StrCpy $0 "${UninstallRegKey}\{$1}" |
|
ReadRegStr $BlenderDir HKLM $0 "InstallLocation" |
|
IfErrors done |
|
ReadRegDWORD $1 HKLM $0 "VersionMajor" |
|
ReadRegDWORD $2 HKLM $0 "VersionMinor" |
|
StrCpy $BlenderVer "$1.$2" |
|
|
|
; Test our detected schtuff for validity |
|
; NOTE: Windows Installer puts a trailing slash on the end of directories! |
|
StrCpy $3 "$BlenderDir$BlenderVer" |
|
IfFileExists "$3\*.*" 0 done |
|
StrCpy $INSTDIR $3 |
|
|
|
done: |
|
ClearErrors |
|
${If} ${RunningX64} |
|
SetRegView 32 |
|
${EndIf} |
|
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_COMPONENTS |
|
!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 "Visual C++ Runtime" |
|
SectionIn 1 2 RO |
|
|
|
SetOutPath "$TEMP\Korman" |
|
File "Files\x86\vcredist_x86.exe" |
|
ExecWait "$TEMP\Korman\vcredist_x86.exe /q /norestart" |
|
${If} ${RunningX64} |
|
File "Files\x64\vcredist_x64.exe" |
|
ExecWait "$TEMP\Korman\vcredist_x64.exe /q /norestart" |
|
${EndIf} |
|
RMdir "$TEMP\Korman" |
|
SectionEnd |
|
|
|
SectionGroup /e "Korman" |
|
Section "Python Addon" |
|
SectionIn 1 2 RO |
|
|
|
SetOutPath "$INSTDIR\scripts\addons" |
|
File /r /x "__pycache__" /x "*.pyc" /x "*.komodo*" /x ".vs" "..\korman" |
|
SectionEnd |
|
|
|
Section "x86 Libraries" |
|
SectionIn 1 RO |
|
|
|
SetOutPath "$INSTDIR\python\lib\site-packages" |
|
File "Files\x86\HSPlasma.dll" |
|
File "Files\x86\PyHSPlasma.pyd" |
|
File "Files\x86\_korlib.pyd" |
|
SectionEnd |
|
|
|
Section "x64 Libraries" |
|
SectionIn 2 RO |
|
|
|
SetOutPath "$INSTDIR\python\lib\site-packages" |
|
File "Files\x64\HSPlasma.dll" |
|
File "Files\x64\PyHSPlasma.pyd" |
|
File "Files\x64\_korlib.pyd" |
|
SectionEnd |
|
SectionGroupEnd |
|
|
|
Section "Python 2.2" |
|
SectionIn 1 2 |
|
|
|
SetOutPath "$TEMP\Korman" |
|
File "Files\x86\Python-2.2.3.exe" |
|
ExecWait "$TEMP\Korman\Python-2.2.3.exe /S" |
|
SectionEnd |
|
|
|
Section #TheRemover |
|
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" |
|
; Leaving the NxCooking reference in for posterity |
|
Delete "$INSTDIR\python\lib\site-packages\NxCooking.dll" |
|
Delete "$INSTDIR\python\lib\site-packages\_korlib.pyd" |
|
DeleteRegKey /ifempty HKLM "Software\Korman" |
|
SectionEnd
|
|
|