Условная компиляция

Снимок экрана диалога File Condition в TIDE с пояснениями.

Помимо стандартных директив препроцессора, TIDE позволяет условно включать или исключать целые файлы на уровне дерева проекта. Для этого щёлкните на файле в дереве проекта правой кнопкой мыши и выберите Condition. Появится диалог File Condition.

Пустая строка условия означает, что файл всегда включается в компиляцию. Если задано выражение, файл будет включён, только если выражение имеет значение TRUE.

Включение и исключение файлов выполняется до компиляции любых файлов. Поэтому имена макросов (их часто неверно называют «переменными препроцессора») на этом этапе не видны.

Какие имена можно использовать, показывает диалог File Condition.

Их происхождение можно изучить в диалоге Customize Project (File > Project Settings > Customize):

  • Platform definitions относятся к самой платформе, и изменить их нельзя.
  • Custom definitions можно редактировать по своему усмотрению.

Выражение считается конструкцией #if - #endif, поэтому набирать #if и #endif не нужно - достаточно выражения «между ними».

В строках выражений используется стандартный синтаксис препроцессора BASIC, даже если вы задаёте условия для файла на C.

Правильно: OBJECT_LCD=LCD_ENABLED AND OBJECT_FD=FD_DISABLED

Неправильно: OBJECT_LCD=LCD_ENABLED && OBJECT_FD=FD_DISABLED

Иными словами, используйте «AND», «OR» или «<>» (а не «&&», «||» или «!=»).

Для заголовочных файлов (.TBH и .TH) условия задать нельзя. Заголовочные файлы находятся в дереве проекта только для удобства редактирования, и не более. Их включением в компиляцию управляет оператор include. Чтобы подключить заголовочный файл по условию, используйте директивы препроцессора. Например:

#if PLATFORM_ID=DS1101W
   include "global.tbh"
#endif
Исходный материал Tibbo обновлён 12 сентября 2022Оригинал на docs.tibbo.com · Сообщить об ошибке