diff --git a/cmake/macros/SetPackagingParameters.cmake b/cmake/macros/SetPackagingParameters.cmake index 6ce3c95cdd..82a4a7d080 100644 --- a/cmake/macros/SetPackagingParameters.cmake +++ b/cmake/macros/SetPackagingParameters.cmake @@ -139,7 +139,8 @@ macro(SET_PACKAGING_PARAMETERS) set(CLIENT_DESKTOP_SHORTCUT_REG_KEY "ClientDesktopShortcut") set(CONSOLE_DESKTOP_SHORTCUT_REG_KEY "ConsoleDesktopShortcut") set(CONSOLE_STARTUP_REG_KEY "ConsoleStartupShortcut") - set(LAUNCH_NOW_REG_KEY "LaunchAfterInstall") + set(CLIENT_LAUNCH_NOW_REG_KEY "ClientLaunchAfterInstall") + set(SERVER_LAUNCH_NOW_REG_KEY "ServerLaunchAfterInstall") endif () # setup component categories for installer diff --git a/cmake/templates/CPackProperties.cmake.in b/cmake/templates/CPackProperties.cmake.in index d7a1278e99..c1e3d9d773 100644 --- a/cmake/templates/CPackProperties.cmake.in +++ b/cmake/templates/CPackProperties.cmake.in @@ -38,7 +38,8 @@ set(POST_INSTALL_OPTIONS_REG_GROUP "@POST_INSTALL_OPTIONS_REG_GROUP@") set(CLIENT_DESKTOP_SHORTCUT_REG_KEY "@CLIENT_DESKTOP_SHORTCUT_REG_KEY@") set(CONSOLE_DESKTOP_SHORTCUT_REG_KEY "@CONSOLE_DESKTOP_SHORTCUT_REG_KEY@") set(CONSOLE_STARTUP_REG_KEY "@CONSOLE_STARTUP_REG_KEY@") -set(LAUNCH_NOW_REG_KEY "@LAUNCH_NOW_REG_KEY@") +set(SERVER_LAUNCH_NOW_REG_KEY "@SERVER_LAUNCH_NOW_REG_KEY@") +set(CLIENT_LAUNCH_NOW_REG_KEY "@CLIENT_LAUNCH_NOW_REG_KEY@") set(INSTALLER_HEADER_IMAGE "@INSTALLER_HEADER_IMAGE@") set(UNINSTALLER_HEADER_IMAGE "@UNINSTALLER_HEADER_IMAGE@") set(ADD_REMOVE_ICON_PATH "@ADD_REMOVE_ICON_PATH@") diff --git a/cmake/templates/NSIS.template.in b/cmake/templates/NSIS.template.in index d65612351c..2d7f756315 100644 --- a/cmake/templates/NSIS.template.in +++ b/cmake/templates/NSIS.template.in @@ -368,7 +368,8 @@ Var PostInstallDialog Var DesktopClientCheckbox Var DesktopServerCheckbox Var ServerStartupCheckbox -Var LaunchNowCheckbox +Var LaunchServerNowCheckbox +Var LaunchClientNowCheckbox Var CurrentOffset Var OffsetUnits Var CopyFromProductionCheckbox @@ -431,17 +432,22 @@ Function PostInstallOptionsPage ${If} ${SectionIsSelected} ${@SERVER_COMPONENT_NAME@} ${NSD_CreateCheckbox} 0 $CurrentOffset$OffsetUnits 100% 10u "&Launch @CONSOLE_HF_SHORTCUT_NAME@ after install" - ${Else} - ${NSD_CreateCheckbox} 0 $CurrentOffset$OffsetUnits 100% 10u "&Launch @INTERFACE_HF_SHORTCUT_NAME@ after install" + Pop $LaunchServerNowCheckbox + + ; set the checkbox state depending on what is present in the registry + !insertmacro SetPostInstallOption $LaunchServerNowCheckbox @SERVER_LAUNCH_NOW_REG_KEY@ ${BST_UNCHECKED} + + IntOp $CurrentOffset $CurrentOffset + 15 ${EndIf} - Pop $LaunchNowCheckbox + ${NSD_CreateCheckbox} 0 $CurrentOffset$OffsetUnits 100% 10u "&Launch @INTERFACE_HF_SHORTCUT_NAME@ after install" + Pop $LaunchClientNowCheckbox ; set the checkbox state depending on what is present in the registry - !insertmacro SetPostInstallOption $LaunchNowCheckbox @LAUNCH_NOW_REG_KEY@ ${BST_CHECKED} + !insertmacro SetPostInstallOption $LaunchClientNowCheckbox @CLIENT_LAUNCH_NOW_REG_KEY@ ${BST_CHECKED} ${If} @PR_BUILD@ == 1 - ; a PR build defaults all install options expect LaunchNowCheckbox and the settings copy to unchecked + ; a PR build defaults all install options expect LaunchServerNowCheckbox, LaunchClientNowCheckbox and the settings copy to unchecked ${If} ${SectionIsSelected} ${@CLIENT_COMPONENT_NAME@} ${NSD_SetState} $DesktopClientCheckbox ${BST_UNCHECKED} ${EndIf} @@ -471,7 +477,8 @@ FunctionEnd Var DesktopClientState Var DesktopServerState Var ServerStartupState -Var LaunchNowState +Var LaunchServerNowState +Var LaunchClientNowState Var CopyFromProductionState Function ReadPostInstallOptions @@ -494,7 +501,8 @@ Function ReadPostInstallOptions ${EndIf} ; check if we need to launch an application post-install - ${NSD_GetState} $LaunchNowCheckbox $LaunchNowState + ${NSD_GetState} $LaunchServerNowCheckbox $LaunchServerNowState + ${NSD_GetState} $LaunchClientNowCheckbox $LaunchClientNowState FunctionEnd Function HandlePostInstallOptions @@ -565,20 +573,34 @@ Function HandlePostInstallOptions ${EndIf} ${EndIf} - ${If} $LaunchNowState == ${BST_CHECKED} - !insertmacro WritePostInstallOption @LAUNCH_NOW_REG_KEY@ YES + ${If} $LaunchServerNowState == ${BST_CHECKED} + !insertmacro WritePostInstallOption @SERVER_LAUNCH_NOW_REG_KEY@ YES - ; both launches use the explorer trick in case the user has elevated permissions for the installer - ; it won't be possible to use this approach if either application should be launched with a command line param ${If} ${SectionIsSelected} ${@SERVER_COMPONENT_NAME@} ; create shortcut with ARGUMENTS - CreateShortCut "$TEMP\SandboxShortcut.lnk" "$INSTDIR\@CONSOLE_INSTALL_SUBDIR@\@CONSOLE_WIN_EXEC_NAME@" "-- --launchInterface" - Exec '"$WINDIR\explorer.exe" "$TEMP\SandboxShortcut.lnk"' - ${Else} - Exec '"$WINDIR\explorer.exe" "$INSTDIR\@INTERFACE_WIN_EXEC_NAME@"' + + ; both launches use the explorer trick in case the user has elevated permissions for the installer + ${If} $LaunchClientNowState == ${BST_CHECKED} + !insertmacro WritePostInstallOption @CLIENT_LAUNCH_NOW_REG_KEY@ YES + CreateShortCut "$TEMP\SandboxShortcut.lnk" "$INSTDIR\@CONSOLE_INSTALL_SUBDIR@\@CONSOLE_WIN_EXEC_NAME@" "-- --launchInterface" + Exec '"$WINDIR\explorer.exe" "$TEMP\SandboxShortcut.lnk"' + ${Else} + !insertmacro WritePostInstallOption @CLIENT_LAUNCH_NOW_REG_KEY@ NO + Exec '"$WINDIR\explorer.exe" "$INSTDIR\@CONSOLE_INSTALL_SUBDIR@\@CONSOLE_WIN_EXEC_NAME@"' + ${EndIf} + ${EndIf} ${Else} - !insertmacro WritePostInstallOption @LAUNCH_NOW_REG_KEY@ NO + !insertmacro WritePostInstallOption @SERVER_LAUNCH_NOW_REG_KEY@ NO + + ; launch uses the explorer trick in case the user has elevated permissions for the installer + ${If} $LaunchClientNowState == ${BST_CHECKED} + !insertmacro WritePostInstallOption @CLIENT_LAUNCH_NOW_REG_KEY@ YES + Exec '"$WINDIR\explorer.exe" "$INSTDIR\@INTERFACE_WIN_EXEC_NAME@"' + ${Else} + !insertmacro WritePostInstallOption @CLIENT_LAUNCH_NOW_REG_KEY@ NO + ${EndIf} + ${EndIf} FunctionEnd