Introduces backend API endpoints for ViGEmBus status and installation, updates Windows build scripts to handle ViGEmBus versioning and installer download, and integrates ViGEmBus status and installation controls into the web UI. Removes legacy PowerShell scripts for gamepad driver management and related NSIS installer commands.
65 lines
3 KiB
CMake
65 lines
3 KiB
CMake
# NSIS Packaging
|
|
# see options at: https://cmake.org/cmake/help/latest/cpack_gen/nsis.html
|
|
|
|
set(CPACK_NSIS_INSTALLED_ICON_NAME "${PROJECT__DIR}\\\\${PROJECT_EXE}")
|
|
|
|
# Extra install commands
|
|
# Restores permissions on the install directory
|
|
# Migrates config files from the root into the new config folder
|
|
# Install service
|
|
SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS
|
|
"${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}
|
|
IfSilent +2 0
|
|
ExecShell 'open' 'https://docs.lizardbyte.dev/projects/sunshine'
|
|
nsExec::ExecToLog 'icacls \\\"$INSTDIR\\\" /reset'
|
|
nsExec::ExecToLog '\\\"$INSTDIR\\\\scripts\\\\update-path.bat\\\" add'
|
|
nsExec::ExecToLog '\\\"$INSTDIR\\\\scripts\\\\migrate-config.bat\\\"'
|
|
nsExec::ExecToLog '\\\"$INSTDIR\\\\scripts\\\\add-firewall-rule.bat\\\"'
|
|
nsExec::ExecToLog '\\\"$INSTDIR\\\\scripts\\\\install-service.bat\\\"'
|
|
nsExec::ExecToLog '\\\"$INSTDIR\\\\scripts\\\\autostart-service.bat\\\"'
|
|
NoController:
|
|
")
|
|
|
|
# Extra uninstall commands
|
|
# Uninstall service
|
|
set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS
|
|
"${CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS}
|
|
nsExec::ExecToLog '\\\"$INSTDIR\\\\scripts\\\\delete-firewall-rule.bat\\\"'
|
|
nsExec::ExecToLog '\\\"$INSTDIR\\\\scripts\\\\uninstall-service.bat\\\"'
|
|
nsExec::ExecToLog '\\\"$INSTDIR\\\\${CMAKE_PROJECT_NAME}.exe\\\" --restore-nvprefs-undo'
|
|
MessageBox MB_YESNO|MB_ICONQUESTION \
|
|
'Do you want to remove $INSTDIR (this includes the configuration, cover images, and settings)?' \
|
|
/SD IDNO IDNO NoDelete
|
|
RMDir /r \\\"$INSTDIR\\\"; skipped if no
|
|
nsExec::ExecToLog '\\\"$INSTDIR\\\\scripts\\\\update-path.bat\\\" remove'
|
|
NoDelete:
|
|
")
|
|
|
|
# Adding an option for the start menu
|
|
set(CPACK_NSIS_MODIFY_PATH OFF)
|
|
set(CPACK_NSIS_EXECUTABLES_DIRECTORY ".")
|
|
# This will be shown on the installed apps Windows settings
|
|
set(CPACK_NSIS_INSTALLED_ICON_NAME "${CMAKE_PROJECT_NAME}.exe")
|
|
set(CPACK_NSIS_CREATE_ICONS_EXTRA
|
|
"${CPACK_NSIS_CREATE_ICONS_EXTRA}
|
|
SetOutPath '\$INSTDIR'
|
|
CreateShortCut '\$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\${CMAKE_PROJECT_NAME}.lnk' \
|
|
'\$INSTDIR\\\\${CMAKE_PROJECT_NAME}.exe' '--shortcut'
|
|
")
|
|
set(CPACK_NSIS_DELETE_ICONS_EXTRA
|
|
"${CPACK_NSIS_DELETE_ICONS_EXTRA}
|
|
Delete '\$SMPROGRAMS\\\\$MUI_TEMP\\\\${CMAKE_PROJECT_NAME}.lnk'
|
|
")
|
|
|
|
# Checking for previous installed versions
|
|
set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL "ON")
|
|
|
|
set(CPACK_NSIS_HELP_LINK "https://docs.lizardbyte.dev/projects/sunshine/latest/md_docs_2getting__started.html")
|
|
set(CPACK_NSIS_URL_INFO_ABOUT "${CMAKE_PROJECT_HOMEPAGE_URL}")
|
|
set(CPACK_NSIS_CONTACT "${CMAKE_PROJECT_HOMEPAGE_URL}/support")
|
|
|
|
set(CPACK_NSIS_MENU_LINKS
|
|
"https://docs.lizardbyte.dev/projects/sunshine" "Sunshine documentation"
|
|
"https://app.lizardbyte.dev" "LizardByte Web Site"
|
|
"https://app.lizardbyte.dev/support" "LizardByte Support")
|
|
set(CPACK_NSIS_MANIFEST_DPI_AWARE true)
|