Predefines
From Nullsoft Scriptable Install System
5.2 Predefines
You can use these standard predefines to automatically add the build time to the title of development versions, add the date to the version number, etc.
5.2.1 ${__COUNTER__}
Expands to a number (Starting at 0 and incrementing by 1 every time it is used)
5.2.2 ${__FILE__}
Current script name.
5.2.3 ${__FILEDIR__}
Current script directory.
5.2.4 ${__LINE__}
Current line number.
5.2.5 ${__DATE__}
Date when the script started compiling according to the current locale.
5.2.6 ${__TIME__}
Time when the script started compiling according to the current locale.
5.2.7 ${__TIMESTAMP__}
Date & time of the last modification to the script file according to the current locale.
5.2.8 ${NSIS_VERSION}
NSIS version used to build the script.
5.2.9 ${NSIS_PACKEDVERSION}
NSIS version as a 32-bit number.
!if 0x3014000 >= "${NSIS_PACKEDVERSION}"
!error "NSIS 3.15 or higher is required to build this installer!"
!endif
5.2.10 ${NSIS_CHAR_SIZE}
The size of a character code unit (in bytes). 1 in ANSI installers and 2 in Unicode installers.
A grapheme cluster consists of a base character plus optional combining characters and diacritics and is defined as one or more code points. One or more code units is required to encode a single code point.
5.2.11 ${NSIS_PTR_SIZE}
The size of a pointer (in bytes) in the generated installer.
5.2.12 ${U+1}...${U+10FFFF}
A Unicode (UCS-4) character.
DetailPrint "${U+2115}SIS" # DOUBLE-STRUCK CAPITAL N + "SIS"
5.2.13 Scope Predefines
Standard predefines that contain information about the current code scope.
5.2.13.1 ${__GLOBAL__}
Defined in the global scope.
Section test
!ifdef ${__GLOBAL__}
!error "this shouldn't be here!"
!endif
SectionEnd
PageEx instfiles
!ifdef ${__GLOBAL__}
!error "this shouldn't be here!"
!endif
PageExEnd
5.2.13.2 ${__SECTION__}
Defined as the section name, without any prefixes, in section scope.
!ifdef __SECTION__
!error "this shouldn't be here!"
!endif
Section test
!ifndef __SECTION__
!error "missing predefine!"
!endif
!if ${__SECTION__} != test
!error "wrong predefine value!"
!endif
SectionEnd
Section !test
!if ${__SECTION__} != test
!error "wrong predefine value!"
!endif
SectionEnd
Section un.test
!if ${__SECTION__} != test
!error "wrong predefine value!"
!endif
SectionEnd
5.2.13.3 ${__FUNCTION__}
Defined as the function name, without any prefixes, in function scope.
!ifdef __FUNCTION__
!error "this shouldn't be here!"
!endif
Function test
!ifndef __FUNCTION__
!error "missing predefine!"
!endif
!if ${__FUNCTION__} != test
!error "wrong predefine value!"
!endif
FunctionEnd
Function un.test
!if ${__FUNCTION__} != test
!error "wrong predefine value!"
!endif
FunctionEnd
5.2.13.4 ${__PAGEEX__}
Defined as the page type in PageEx scope.
!ifdef __PAGEEX__
!error "this shouldn't be here!"
!endif
PageEx instfiles
!ifndef __PAGEEX__
!error "missing predefine!"
!endif
!if ${__PAGEEX__} != instfiles
!error "wrong page type"
!endif
PageExEnd
5.2.13.5 ${__UNINSTALL__}
Defined in section, function or PageEx scopes of the uninstaller.
!ifdef __UNINSTALL__
!error "this shouldn't be here!"
!endif
Function test
!ifdef __UNINSTALL__
!error "this shouldn't be here!"
!endif
FunctionEnd
Function un.test
!ifndef __UNINSTALL__
!error "missing predefine!"
!endif
FunctionEnd
5.2.13.6 ${__MACRO__}
Defined as the name of the current macro.