Predefines

NSIS

Previous | Contents | Next

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.

Previous | Contents | Next