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.