Prompt Before Compilation

From NSIS Wiki
Jump to navigationJump to search
Author: Zinthose (talk, contrib)


Description

Using a dynamic vbscript created at compile time, you can allow your NSIS scripts to prompt prior to compilation. I've found this useful to alert me to packages that require a significant amount of time to compile.

Usage

${!MsgBox} "WARNING: Package will take a long time to compile.\n\
    Average Compilation Time: 54 min 35 sec" "NSIS Compilation"

NSIS Macro

!define !MsgBox `!insertmacro _!MsgBox`
!macro _!MsgBox _Message _Caption
    !verbose push
    !verbose 0
    !tempfile MsgBox
    !appendfile "${MsgBox}" `WScript.Quit MsgBox(Replace(Replace(Replace("${_Message}","\t",vbTab),"\n",vbLf),"\r",vbCr),289,"${_Caption}")`
    !system `wscript.exe "${MsgBox}" //E:vbscript` = 1
    !delfile "${MsgBox}"
    !undef MsgBox
    !verbose pop
!macroend