/*
 * Multi-line
 * Comment
 */

# Single-line comment
; Another-single line comment

; Includes
!include "LogicLib.nsh"

; Defines
!define ARCHITECTURE "x64"

; Compile time command
!echo "Building ${ARCHITECTURE} script"

; Macro definition
!macro SayHello name
    !ifdef name
        !echo "Hello, ${name}"
    !else
        !echo "Hello, world"
    !endif
!macroend

; Macro usage
!insertmacro SayHello "John Doe"

; Settings
Name "installer_name"
OutFile "installer_name.exe"
RequestExecutionLevel user
CRCCheck on
Unicode true

!ifdef ${ARCHITECTURE}
  InstallDir "$PROGRAMFILES64\installer_name"
!else
  InstallDir "$PROGRAMFILES\installer_name"
!endif

; Pages
Page components
Page instfiles

; Functions
Function PrintTestStrings
  DetailPrint "The install button reads $(^InstallBtn)"
  DetailPrint 'Here comes a$\n$\rline-break!'
  DetailPrint `Escape the dollar-sign: $$`
FunctionEnd

; Sections
Section "section_name" section_index
    Call PrintTestStrings    

    ; NSIS plugin call
    nsExec::ExecToLog "calc.exe"
SectionEnd