use macro to write post install options

This commit is contained in:
Stephen Birarda 2016-01-13 17:21:17 -08:00
parent a1a92cf3a9
commit 3c3ef094bb
2 changed files with 21 additions and 5 deletions

View file

@ -24,5 +24,5 @@ set(REGISTRY_HKLM_INSTALL_ROOT "@REGISTRY_HKLM_INSTALL_ROOT@")
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_SHORTCUT_REG_KEY@")
set(CONSOLE_STARTUP_REG_KEY "@CONSOLE_STARTUP_REG_KEY@")
set(LAUNCH_NOW_REG_KEY "@LAUNCH_NOW_REG_KEY@")

View file

@ -850,6 +850,9 @@ Function PostInstallOptionsPage
${NSD_CreateCheckbox} 0 15u 100% 10u "&Create a desktop shortcut for @INTERFACE_SHORTCUT_NAME@"
Pop $DESKTOP_CLIENT_CHECKBOX
StrCpy $CURRENT_OFFSET "30u"
; check if we have a chosen option for this in the registry already
${NSD_SetState} $DESKTOP_CLIENT_CHECKBOX ${BST_CHECKED}
${EndIf}
@ -881,6 +884,11 @@ Function PostInstallOptionsPage
nsDialogs::Show
FunctionEnd
!macro WritePostInstallOption OptionName Option
; writes the value for the given post install option to the registry
WriteRegDWORD HKLM "@REGISTRY_HKLM_INSTALL_ROOT@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\@POST_INSTALL_OPTIONS_REG_GROUP@" "${OptionName}" ${Option}
!macroend
Var DESKTOP_CLIENT_STATE
Var DESKTOP_SERVER_STATE
Var SERVER_STARTUP_STATE
@ -893,7 +901,9 @@ Function HandlePostInstallOptions
${If} $DESKTOP_CLIENT_STATE == ${BST_CHECKED}
CreateShortCut "$DESKTOP\@INTERFACE_SHORTCUT_NAME@.lnk" "$INSTDIR\@INTERFACE_WIN_EXEC_NAME@"
WriteRegDWORD HKLM "@REGISTRY_HKLM_INSTALL_ROOT@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\@POST_INSTALL_OPTIONS_REG_GROUP@" "@CLIENT_DESKTOP_SHORTCUT_REG_KEY@" 1
!insertmacro WritePostInstallOption "@CLIENT_DESKTOP_SHORTCUT_REG_KEY@" 1
${Else}
!insertmacro WritePostInstallOption @CLIENT_DESKTOP_SHORTCUT_REG_KEY@ 0
${EndIf}
${EndIf}
@ -904,7 +914,9 @@ Function HandlePostInstallOptions
${If} $DESKTOP_SERVER_STATE == ${BST_CHECKED}
CreateShortCut "$DESKTOP\@CONSOLE_SHORTCUT_NAME@.lnk" "$INSTDIR\@CONSOLE_WIN_EXEC_NAME@"
WriteRegDWORD HKLM "@REGISTRY_HKLM_INSTALL_ROOT@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\@POST_INSTALL_OPTIONS_REG_GROUP@" "@CONSOLE_DESKTOP_SHORTCUT_REG_KEY@" 1
!insertmacro WritePostInstallOption @CONSOLE_DESKTOP_SHORTCUT_REG_KEY@ 1
${Else}
!insertmacro WritePostInstallOption @CONSOLE_DESKTOP_SHORTCUT_REG_KEY@ 0
${EndIf}
; check if the user asked to have Server Console launched every startup
@ -913,7 +925,9 @@ Function HandlePostInstallOptions
${If} $SERVER_STARTUP_STATE == ${BST_CHECKED}
CreateShortCut "$SMSTARTUP\@CONSOLE_SHORTCUT_NAME@.lnk" "$INSTDIR\@CONSOLE_WIN_EXEC_NAME@"
WriteRegDWORD HKLM "@REGISTRY_HKLM_INSTALL_ROOT@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\@POST_INSTALL_OPTIONS_REG_GROUP@" "@CONSOLE_STARTUP_REG_KEY@" 1
!insertmacro WritePostInstallOption @CONSOLE_STARTUP_REG_KEY@ 1
${Else}
!insertmacro WritePostInstallOption @CONSOLE_STARTUP_REG_KEY@ 0
${EndIf}
${EndIf}
@ -921,7 +935,7 @@ Function HandlePostInstallOptions
${NSD_GetState} $LAUNCH_NOW_CHECKBOX $LAUNCH_NOW_STATE
${If} $LAUNCH_NOW_STATE == ${BST_CHECKED}
WriteRegDWORD HKLM "@REGISTRY_HKLM_INSTALL_ROOT@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@\@POST_INSTALL_OPTIONS_REG_GROUP@" "@LAUNCH_NOW_REG_KEY@" 1
!insertmacro WritePostInstallOption @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
@ -930,6 +944,8 @@ Function HandlePostInstallOptions
${Else}
Exec '"$WINDIR\explorer.exe" "$INSTDIR\@INTERFACE_WIN_EXEC_NAME@"'
${EndIf}
${Else}
!insertmacro WritePostInstallOption @LAUNCH_NOW_REG_KEY@ 0
${EndIf}
FunctionEnd