mirror of
https://onedev.site.tesses.net/crosslang/crosslangdevstudio
synced 2026-02-08 17:25:45 +00:00
First Commit
This commit is contained in:
147
Packaging/Windows/script.nsh
Normal file
147
Packaging/Windows/script.nsh
Normal file
@@ -0,0 +1,147 @@
|
||||
# This installs two files, app.exe and logo.ico, creates a start menu shortcut, builds an uninstaller, and
|
||||
# adds uninstall information to the registry for Add/Remove Programs
|
||||
|
||||
# To get started, put this script into a folder with the two files (app.exe, logo.ico, and license.rtf -
|
||||
# You'll have to create these yourself) and run makensis on it
|
||||
|
||||
# If you change the names "app.exe", "logo.ico", or "license.rtf" you should do a search and replace - they
|
||||
# show up in a few places.
|
||||
# All the other settings can be tweaked by editing the !defines at the top of this script
|
||||
!define APPNAME "CrossLang DevStudio"
|
||||
!define COMPANYNAME "Tesses"
|
||||
!define DESCRIPTION "IDE for CrossLang"
|
||||
# These three must be integers
|
||||
!define VERSIONMAJOR 1
|
||||
!define VERSIONMINOR 0
|
||||
!define VERSIONBUILD 0
|
||||
# These will be displayed by the "Click here for support information" link in "Add/Remove Programs"
|
||||
# It is possible to use "mailto:" links in here to open the email client
|
||||
!define ABOUTURL "https://crosslang.tesseslanguage.com/" # "Publisher" link
|
||||
# This is the size (in kB) of all the files copied into "Program Files"
|
||||
|
||||
|
||||
RequestExecutionLevel admin ;Require admin rights on NT6+ (When UAC is turned on)
|
||||
|
||||
InstallDir "$PROGRAMFILES\${COMPANYNAME}\${APPNAME}"
|
||||
|
||||
# rtf or txt file - remember if it is txt, it must be in the DOS text format (\r\n)
|
||||
LicenseData "license.txt"
|
||||
# This will be in the installer/uninstaller's title bar
|
||||
Name "${COMPANYNAME} - ${APPNAME}"
|
||||
Icon "crosslang.ico"
|
||||
outFile "CrossLangDevStudio-Installer.exe"
|
||||
|
||||
!include LogicLib.nsh
|
||||
|
||||
# Just three pages - license agreement, install location, and installation
|
||||
page license
|
||||
page directory
|
||||
Page instfiles
|
||||
|
||||
!macro VerifyUserIsAdmin
|
||||
UserInfo::GetAccountType
|
||||
pop $0
|
||||
${If} $0 != "admin" ;Require admin rights on NT4+
|
||||
messageBox mb_iconstop "Administrator rights required!"
|
||||
setErrorLevel 740 ;ERROR_ELEVATION_REQUIRED
|
||||
quit
|
||||
${EndIf}
|
||||
!macroend
|
||||
|
||||
function .onInit
|
||||
setShellVarContext all
|
||||
!insertmacro VerifyUserIsAdmin
|
||||
functionEnd
|
||||
|
||||
section "install"
|
||||
createDirectory "$INSTDIR\bin"
|
||||
createDirectory "$INSTDIR\share"
|
||||
createDirectory "$INSTDIR\share\Tesses"
|
||||
createDirectory "$INSTDIR\share\Tesses\CrossLang"
|
||||
# Files for the install directory - to build the installer, these should be in the same directory as the install script (this file)
|
||||
setOutPath $INSTDIR
|
||||
|
||||
# Files added here should be removed by the uninstaller (see section "uninstall")
|
||||
|
||||
file "crosslang.ico"
|
||||
setOutPath $INSTDIR\bin
|
||||
|
||||
file "bin\CrossLangDevStudio.exe"
|
||||
file "bin\av_libglesv2.dll"
|
||||
file "bin\libHarfBuzzSharp.dll"
|
||||
file "bin\libSkiaSharp.dll"
|
||||
file "bin\crosslang.exe"
|
||||
setOutPath $INSTDIR\share\Tesses\CrossLang
|
||||
|
||||
file "share\Tesses\CrossLang\Tesses.CrossLang.ShellPackage-1.0.0.0-prod.crvm"
|
||||
|
||||
# Add any other files for the install directory (license files, app data, etc) here
|
||||
|
||||
# Uninstaller - See function un.onInit and section "uninstall" for configuration
|
||||
writeUninstaller "$INSTDIR\uninstall.exe"
|
||||
|
||||
# Start Menu
|
||||
createDirectory "$SMPROGRAMS\${COMPANYNAME}"
|
||||
createShortCut "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk" "$INSTDIR\bin\CrossLangDevStudio.exe" "" "$INSTDIR\crosslang.ico"
|
||||
|
||||
# Registry information for add/remove programs
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayName" "${COMPANYNAME} - ${APPNAME} - ${DESCRIPTION}"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\""
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "InstallLocation" "$\"$INSTDIR$\""
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayIcon" "$\"$INSTDIR\logo.ico$\""
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "Publisher" "$\"${COMPANYNAME}$\""
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "URLInfoAbout" "$\"${ABOUTURL}$\""
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayVersion" "$\"${VERSIONMAJOR}.${VERSIONMINOR}.${VERSIONBUILD}$\""
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "VersionMajor" ${VERSIONMAJOR}
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "VersionMinor" ${VERSIONMINOR}
|
||||
# There is no option for modifying or repairing the install
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoModify" 1
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoRepair" 1
|
||||
WriteRegStr HKCR "Directory\Background\shell\${APPNAME}\command" "" "$\"$INSTDIR\bin\CrossLangDevStudio.exe$\" $\"%V$\""
|
||||
sectionEnd
|
||||
|
||||
# Uninstaller
|
||||
|
||||
function un.onInit
|
||||
SetShellVarContext all
|
||||
|
||||
#Verify the uninstaller - last chance to back out
|
||||
MessageBox MB_OKCANCEL "Permanantly remove ${APPNAME}?" IDOK next
|
||||
Abort
|
||||
next:
|
||||
!insertmacro VerifyUserIsAdmin
|
||||
functionEnd
|
||||
|
||||
section "uninstall"
|
||||
|
||||
# Remove Start Menu launcher
|
||||
delete "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk"
|
||||
# Try to remove the Start Menu folder - this will only happen if it is empty
|
||||
rmDir "$SMPROGRAMS\${COMPANYNAME}"
|
||||
|
||||
# Remove files
|
||||
delete $INSTDIR\bin\CrossLangDevStudio.exe
|
||||
delete $INSTDIR\crosslang.ico
|
||||
|
||||
delete $INSTDIR\bin\av_libglesv2.dll
|
||||
delete $INSTDIR\bin\libHarfBuzzSharp.dll
|
||||
delete $INSTDIR\bin\libSkiaSharp.dll
|
||||
delete $INSTDIR\bin\crosslang.exe
|
||||
|
||||
# Always delete uninstaller as the last action
|
||||
delete $INSTDIR\uninstall.exe
|
||||
delete $INSTDIR\share\Tesses\CrossLang\Tesses.CrossLang.ShellPackage-1.0.0.0-prod.crvm
|
||||
rmDir "$INSTDIR\share\Tesses\CrossLang"
|
||||
rmDir "$INSTDIR\share\Tesses"
|
||||
rmDir "$INSTDIR\bin"
|
||||
rmDir "$INSTDIR\share"
|
||||
|
||||
|
||||
|
||||
# Try to remove the install directory - this will only happen if it is empty
|
||||
rmDir $INSTDIR
|
||||
|
||||
# Remove uninstaller information from the registry
|
||||
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}"
|
||||
sectionEnd
|
||||
Reference in New Issue
Block a user