2.3.7 Команды компилятора
Команды компилятора будут выполняться во время компиляции на вашем компьютере. Они могут быть использованы для условной компиляции, для включения заголовочных файлов, запуска приложений, смены рабочей директории и пр. Самое распространенное применение - это определения. Определения - это константы периода компиляции. Вы можете определить номер версии вашего продукта и использовать его в скриптах. Например:
Name "My Program ${VERSION}"
OutFile "My Program Installer - ${VERSION}.exe"
Более подробно об определениях рассказано в разделе Условная компиляция.
Другое частое использование - это макрос. Макросы применяются для вставки кода на период компиляции, в зависимости от определений и используя их значения. Команды макроса вставляются в период компиляции. Это позволяет вам записывать общий код только однажды и использовать его много раз, но с некоторыми изменениями. Например:
Function ${UN}MyFunc
Call ${UN}DoRegStuff
ReadRegStr $0 HKLM Software\MyProgram key
DetailPrint $0
FunctionEnd
!macroend
!insertmacro MyFunc ""
!insertmacro MyFunc "un."
Этот макрос помогает вам избежать запись одного и того же кода и для инсталлятора, и для деинсталлятора. Два !insertmacros вставляют две функции: одну для инсталлятора и называющуюся как MyFunc, а другую для деинсталлятора и называющуюся как un.MyFunc - и обе функции выполняют одно и то же.
За более подробной информацией обращайтесь в раздел Команды периода компиляции.