Управление сборкой проекта |
Для управления сборкой проекта используется широко распространенная директива #make. Но, в отличие от других языков программирования, в эта директива входит в состав языка. Это означает, что ее можно добавлять в исходный текст программ - конечно, с соблюдением синтаксиса языка (в частности - за пределами интерфейса или другой программной единицы). Но обычно эти директивы группируются в файлы управления сборкой проекта (файл проекта). Файл проекта объединяет несколько исходных файлов в одну единицу сборки.
При компиляции файла проекта необходимо выключить опцию компилятора /M (убрать ее из файла конфигурации). Иначе проверка на дату будет делаться по самому файлу-проекту, а не по исходным файлам.
Т.к. директива #make является частью языка , файл проекта является обычным компилируемым модулем и в него можно добавлять другие конструкции языка. В частности, в нем можно объявлять константы и переменные. Описания констант и переменных могут располагаться в любом месте файла проекта. Но обычно описания констант лежат в отдельном файле (в нескольких файлах) и включаются в файл проекта с помощью директивы #include. Для директивы #include как правило используется первая строка файла проекта.
Переменные, объявленные в файле проекта, являются глобальными и видны в любой точке проекта. Массивы в файле проекта не объявляются. Проект не имеет глобальных массивов. Все константы проекта являются глобальными независимо от уровня, на котором они объявлены.
Для того чтобы избежать неоднократной компиляции файла с константами можно включить его в первую строку файла проекта с помощью #include. При этом из самих *.VIP файлов этот #include необходимо убрать.
При компиляции программного модуля, написанного на #statusline позволяет включить в файл проекта ссылку на описание статус-строк. Описание должно быть предварительно откомпилировано, а соответствующий ресурс подключен к компилятору (параметр System.OpenResources файла конфигурации).
, компилятору должны быть доступны статус-строки, используемые в этом модуле. Директива
#statusline "StatGal" #include core.inc #include sklad.inc end; // "Ядро приложения" #component "C_CORE" #make "Src\vip\Core\Materials.vip" #make "Src\vip\Core\Executors.vip" #make "Src\vip\Core\twPRJEXECUTORS.vip" #make "Src\vip\Core\twPRJMATERIALS.vip" // "Управление снабжением" #component "C_SKLAD" #make "Src\vip\Sklad\twKatMaterials.vip" #make "Src\vip\Sklad\KatMaterials.vip"