Директивы компилятора
IFDEF
Синтаксис:
#IFDEF Имя
Строки, которые следуют за этой директивой, будут прочитаны только в том случае,
если ключевое слово Имя определено.
Чтение выполняется до тех пор, пока не будет найдено ключевое слово #ELSE или #ENDIF,
после которого возобновится нормальный процесс компиляции.
Пример:
#IFDEF VER2_2_0
-Fu/usr/lib/fpc/2.2.0/linuxunits
#ENDIF
В этом примере /usr/lib/fpc/2.2.0/linuxunits будет добавлено в путь, если
вы используете версию компилятора 2.2.0.
IFNDEF
Синтаксис:
#IFNDEF Имя
Строки, которые следуют за этой директивой, будут прочитаны только в том случае,
если ключевое слово Имя НЕ определено.
Чтение выполняется до тех пор, пока не будет найдено ключевое слово #ELSE или
#ENDIF, после которого возобновится нормальный процесс компиляции.
Пример:
#IFNDEF VER2_2_0
-Fu/usr/lib/fpc/2.2.0/linuxunits
#ENDIF
В этом примере /usr/lib/fpc/2.2.0/linuxunits будет добавлено в путь, если вы
используете любую версию компилятора, кроме версии 2.2.0.
ELSE
Синтаксис:
#ELSE
Директива #ELSE может быть указана после директив #IFDEF или #IFNDEF как альтернатива.
Строки, которые следуют за этой директивой, будут прочитаны только в том случае, если
ключевое не выполнилось условие директив #IFDEF или #IFNDEF.
Чтение выполняется до тех пор, пока не будет найдено ключевое слово #ENDIF,
после которого возобновится нормальный процесс компиляции.
Пример:
#IFDEF VER2_2_2
-Fu/usr/lib/fpc/2.2.2/linuxunits
#ELSE
-Fu/usr/lib/fpc/2.2.0/linuxunits
#ENDIF
В этом примере /usr/lib/fpc/2.2.2/linuxunits будет добавлено в путь, если вы
используете версию компилятора 2.2.2, иначе будет добавлено /usr/lib/fpc/2.2.0/linuxunits.
ENDIF
Синтаксис:
#ENDIF
Директива #ENDIF отмечает конец блока, который начинается директивой #IF(N)DEF,
возможно с директивой #ELSE между ними.
DEFINE
Синтаксис:
#DEFINE Имя
Директива #DEFINE определяет новое ключевое слово. Она имеет тот же эффект,
что и параметр командной строки –dname.
UNDEF
Синтаксис:
#UNDEF Имя
Директива #UNDEF отменяет определение ключевого слова, если оно существует.
Директива имеет тот же эффект, что параметр командной строки –uname.
WRITE
Синтаксис:
#WRITE Текст сообщения
Директива #WRITE выводит Текст сообщения на экран. Это может оказаться полезным
для вывода предупреждений, если какие-либо опции являются установленными.
Пример:
#IFDEF DEBUG
#WRITE Setting debugging ON...
-g
#ENDIF
Если DEBUG определено, то этот пример выведет строку
Setting debugging ON...
а затем включит вывод отладочной информации.
INCLUDE
Синтаксис:
#INCLUDE ИмяФайла
Директива #INCLUDE даёт команду компилятору читать содержимое файла ИмяФайла,
перед продолжением чтения параметров в текущем файле.
Это может оказаться полезным, если вы редко используете
конфигурационный файл
для проекта (или работаете на LINUX в вашей домашней директории), но в то же
время хотите использовать глобальные параметры в глобальном конфигурационном файле.
Пример:
#IFDEF LINUX
#INCLUDE /etc/fpc.cfg
#ELSE
#IFDEF GO32V2
#INCLUDE c:\pp\bin\fpc.cfg
#ENDIF
#ENDIF
Если вы работаете на LINUX-машине, то будет подключен
конфигурационный файл /etc/fpc.cfg, а если вы работает на DOS-машине, то будет подключен
конфигурационный файл c:\pp\bin\fpc.cfg.
SECTION
Синтаксис:
#SECTION Имя
Директива #SECTION действует как директива #IFDEF, только не требует директивы #ENDIF.
Специальное имя COMMON всегда существует, то есть строки, которые следуют за #SECTION
COMMON всегда будут читаться.