mirror of
https://github.com/garraflavatra/rolens.git
synced 2025-01-18 21:17:59 +00:00
110 lines
4.7 KiB
Plaintext
110 lines
4.7 KiB
Plaintext
Unicode true
|
|
|
|
## Please note: Template replacements don't work in this file. They are provided with default defines like
|
|
## mentioned underneath.
|
|
## If the keyword is not defined, "wails_tools.nsh" will populate them with the values from ProjectInfo.
|
|
## If they are defined here, "wails_tools.nsh" will not touch them. This allows to use this project.nsi manually
|
|
## from outside of Wails for debugging and development of the installer.
|
|
|
|
## For development first make a wails nsis build to populate the "wails_tools.nsh":
|
|
## > wails build --target windows/amd64 --nsis
|
|
## Then you can call makensis on this file with specifying the path to your binary:
|
|
## For a AMD64 only installer:
|
|
## > makensis -DARG_WAILS_AMD64_BINARY=..\..\bin\app.exe
|
|
## For a ARM64 only installer:
|
|
## > makensis -DARG_WAILS_ARM64_BINARY=..\..\bin\app.exe
|
|
## For a installer with both architectures:
|
|
## > makensis -DARG_WAILS_AMD64_BINARY=..\..\bin\app-amd64.exe -DARG_WAILS_ARM64_BINARY=..\..\bin\app-arm64.exe
|
|
|
|
## The following information is taken from the ProjectInfo file, but can be overwritten here.
|
|
## !define INFO_PROJECTNAME "MyProject" # Default "{{.Name}}"
|
|
## !define INFO_COMPANYNAME "MyCompany" # Default "{{.Info.CompanyName}}"
|
|
## !define INFO_PRODUCTNAME "MyProduct" # Default "{{.Info.ProductName}}"
|
|
## !define INFO_PRODUCTVERSION "1.0.0" # Default "{{.Info.ProductVersion}}"
|
|
## !define INFO_COPYRIGHT "Copyright" # Default "{{.Info.Copyright}}"
|
|
## !define PRODUCT_EXECUTABLE "Application.exe" # Default "${INFO_PROJECTNAME}.exe"
|
|
## !define UNINST_KEY_NAME "UninstKeyInRegistry" # Default "${INFO_COMPANYNAME}${INFO_PRODUCTNAME}"
|
|
## !define REQUEST_EXECUTION_LEVEL "admin" # Default "admin" see also https://nsis.sourceforge.io/Docs/Chapter4.html
|
|
|
|
!include "wails_tools.nsh"
|
|
|
|
# The version information for this two must consist of 4 parts
|
|
VIProductVersion "${INFO_PRODUCTVERSION}.0"
|
|
VIFileVersion "${INFO_PRODUCTVERSION}.0"
|
|
|
|
# Product information
|
|
VIAddVersionKey "CompanyName" "${INFO_COMPANYNAME}"
|
|
VIAddVersionKey "FileDescription" "${INFO_PRODUCTNAME} Installer"
|
|
VIAddVersionKey "ProductVersion" "${INFO_PRODUCTVERSION}"
|
|
VIAddVersionKey "FileVersion" "${INFO_PRODUCTVERSION}"
|
|
VIAddVersionKey "LegalCopyright" "${INFO_COPYRIGHT}"
|
|
VIAddVersionKey "ProductName" "${INFO_PRODUCTNAME}"
|
|
|
|
!include "MUI2.nsh"
|
|
!define MUI_ICON "..\icon.ico"
|
|
!define MUI_UNICON "..\icon.ico"
|
|
|
|
# Bitmap on the left side of the welcome page. Must be 164x314 pixels in size.
|
|
!define MUI_HEADERIMAGE
|
|
!define MUI_HEADERIMAGE_BITMAP ".\banner_h.bmp"
|
|
!define MUI_WELCOMEFINISHPAGE_BITMAP ".\banner_v.bmp"
|
|
!define MUI_WELCOMEPAGE_TITLE "Welcome to the Rolens installer!"
|
|
|
|
# Finish page information
|
|
!define MUI_FINISHPAGE_RUN "$INSTDIR\${INFO_PROJECTNAME}.exe"
|
|
!define MUI_FINISHPAGE_RUN_TEXT "Start Rolens when finished"
|
|
!define MUI_FINISHPAGE_TITLE "Thanks for installing!"
|
|
!define MUI_FINISHPAGE_LINK "Visit Rolens on the Web!"
|
|
!define MUI_FINISHPAGE_LINK_LOCATION "https://garraflavatra.github.io/rolens/"
|
|
!define MUI_FINISHPAGE_LINK_COLOR 880000
|
|
|
|
!define MUI_FINISHPAGE_NOAUTOCLOSE # Wait on the INSTFILES page so the user can take a look into the details of the installation steps
|
|
!define MUI_ABORTWARNING # This will warn the user if they exit from the installer.
|
|
|
|
!insertmacro MUI_PAGE_WELCOME
|
|
# !insertmacro MUI_PAGE_LICENSE "resources\eula.txt"
|
|
!insertmacro MUI_PAGE_DIRECTORY
|
|
!insertmacro MUI_PAGE_INSTFILES
|
|
!insertmacro MUI_PAGE_FINISH
|
|
|
|
!insertmacro MUI_UNPAGE_INSTFILES
|
|
|
|
!insertmacro MUI_LANGUAGE "English"
|
|
|
|
## The following two statements can be used to sign the installer and the uninstaller. The path to the binaries are provided in %1
|
|
#!uninstfinalize 'signtool --file "%1"'
|
|
#!finalize 'signtool --file "%1"'
|
|
|
|
Name "${INFO_PRODUCTNAME}"
|
|
OutFile "..\..\bin\${INFO_PROJECTNAME}-${ARCH}-installer.exe" # Name of the installer's file.
|
|
InstallDir "$PROGRAMFILES64\${INFO_PRODUCTNAME}" # Default installing folder ($PROGRAMFILES is Program Files folder).
|
|
ShowInstDetails show # This will always show the installation details.
|
|
|
|
Function .onInit
|
|
!insertmacro wails.checkArchitecture
|
|
FunctionEnd
|
|
|
|
Section
|
|
!insertmacro wails.webview2runtime
|
|
|
|
SetOutPath $INSTDIR
|
|
|
|
!insertmacro wails.files
|
|
|
|
CreateShortcut "$SMPROGRAMS\${INFO_PRODUCTNAME}.lnk" "$INSTDIR\${PRODUCT_EXECUTABLE}"
|
|
CreateShortCut "$DESKTOP\${INFO_PRODUCTNAME}.lnk" "$INSTDIR\${PRODUCT_EXECUTABLE}"
|
|
|
|
!insertmacro wails.writeUninstaller
|
|
SectionEnd
|
|
|
|
Section "uninstall"
|
|
RMDir /r "$AppData\${PRODUCT_EXECUTABLE}" # Remove the WebView2 DataPath
|
|
|
|
RMDir /r $INSTDIR
|
|
|
|
Delete "$SMPROGRAMS\${INFO_PRODUCTNAME}.lnk"
|
|
Delete "$DESKTOP\${INFO_PRODUCTNAME}.lnk"
|
|
|
|
!insertmacro wails.deleteUninstaller
|
|
SectionEnd
|