Archive: Using Funtions in Compile Time

Using Funtions in Compile Time
I got the date functions from the NSIS site ( and would like to get the today serial value during compile time.

I envisioned running the script as follows:

!define day
!define !DaySerial `!insertmacro _!DaySerial`
!macro _!DaySerial _SERIAL
Call TodaySerial
Pop ${_SERIAL}
DetailPrint ${_SERIAL}
${!DaySerial} day

But I am getting an error on the call:
Error: command Call not valid outside Section or Function
Error in macro _!DaySerial on macroline 1
Apparently, the CALL command cannot be executed from a compile time macro.

My question is: How can I call the function in compile time?



You cannot call a function at compile time. You can however call an executable at compile time, using !execute or !system. So you can let your script run a compiled NSIS exe which writes "!define Foo bar" to an nsh file, and then you !include that nsh file after you !execute the exe.