diff --git a/cmake/macros/SetPackagingParameters.cmake b/cmake/macros/SetPackagingParameters.cmake index 78ba8f1a71..3ed10bd860 100644 --- a/cmake/macros/SetPackagingParameters.cmake +++ b/cmake/macros/SetPackagingParameters.cmake @@ -71,6 +71,11 @@ macro(SET_PACKAGING_PARAMETERS) endif () set(GENERATED_UNINSTALLER_EXEC_NAME "Uninstall.exe") + set(POST_INSTALL_OPTIONS_REG_GROUP "PostInstallOptions") + 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") endif () if (APPLE) diff --git a/cmake/templates/CPackProperties.cmake.in b/cmake/templates/CPackProperties.cmake.in index 0bfa179d5b..8baf223c72 100644 --- a/cmake/templates/CPackProperties.cmake.in +++ b/cmake/templates/CPackProperties.cmake.in @@ -20,3 +20,7 @@ set(CLIENT_COMPONENT_NAME "@CLIENT_COMPONENT@") set(SERVER_COMPONENT_NAME "@SERVER_COMPONENT@") set(SIGNTOOL_EXECUTABLE "@SIGNTOOL_EXECUTABLE@") set(UNINSTALLER_NAME "@GENERATED_UNINSTALLER_EXEC_NAME@") +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_SHORTCUT_REG_KEY@") +set(LAUNCH_NOW_REG_KEY "@LAUNCH_NOW_REG_KEY@") diff --git a/cmake/templates/NSIS.template.in b/cmake/templates/NSIS.template.in index 035cb1ebe0..efd45b1500 100644 --- a/cmake/templates/NSIS.template.in +++ b/cmake/templates/NSIS.template.in @@ -893,6 +893,8 @@ Function HandlePostInstallOptions ${If} $DESKTOP_CLIENT_STATE == ${BST_CHECKED} CreateShortCut "$DESKTOP\@INTERFACE_SHORTCUT_NAME@.lnk" "$INSTDIR\@INTERFACE_WIN_EXEC_NAME@" + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Install\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\@POST_INSTALL_OPTIONS_REG_GROUP@" \ + "@CLIENT_DESKTOP_SHORTCUT_REG_KEY@" 1 ${EndIf} ${EndIf} @@ -903,6 +905,8 @@ Function HandlePostInstallOptions ${If} $DESKTOP_SERVER_STATE == ${BST_CHECKED} CreateShortCut "$DESKTOP\@CONSOLE_SHORTCUT_NAME@.lnk" "$INSTDIR\@CONSOLE_WIN_EXEC_NAME@" + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Install\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\@POST_INSTALL_OPTIONS_REG_GROUP@" \ + "@CONSOLE_DESKTOP_SHORTCUT_REG_KEY@" 1 ${EndIf} ; check if the user asked to have Server Console launched every startup @@ -910,6 +914,9 @@ Function HandlePostInstallOptions ${If} $SERVER_STARTUP_STATE == ${BST_CHECKED} CreateShortCut "$SMSTARTUP\@CONSOLE_SHORTCUT_NAME@.lnk" "$INSTDIR\@CONSOLE_WIN_EXEC_NAME@" + + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Install\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\@POST_INSTALL_OPTIONS_REG_GROUP@" \ + "@CONSOLE_STARTUP_REG_KEY@" 1 ${EndIf} ${EndIf} @@ -917,6 +924,9 @@ Function HandlePostInstallOptions ${NSD_GetState} $LAUNCH_NOW_CHECKBOX $LAUNCH_NOW_STATE ${If} $LAUNCH_NOW_STATE == ${BST_CHECKED} + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Install\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\@POST_INSTALL_OPTIONS_REG_GROUP@" \ + "@LAUNCH_NOW_REG_KEY@" 1 + ; 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@}