Ада-95. Компилятор GNAT


         

Импорт других проектов


Какой-либо компилируемый модуль расположенный в файле с исходным текстом, который принадлежит одному проекту, может зависить от компилируемых модулей расположенных в файлах с исходными текстами, которые принадлежат другим проектам.

Для получения такого поведения, зависимый проект должен импортировать проекты, которые содержат необходимые файлы с исходными текстами.

Достижение такого эффекта заключено в синтаксисе, который подобен использованию спецификатора with в языке Ада.

При этом указываемыми в with сущностями являются строки, которые обозначают файлы проектов.

В качестве простого примера предположим, что два проекта GUI_Proj и Comm_Proj

описаны в файлах проектов "gui_proj.gpr" и "comm_proj.gpr", которые расположены в каталогах "/gui" и "/comm" соответственно.

Предположим также, что исходными файлами проекта GUI_Proj являются файлы "gui.ads" и "gui.adb", а исходными файлами проекта Comm_Proj являются файлы "comm.ads" и "comm.adb", и файлы каждого проекта размещаются в каталоге соответствующего проекта.

Для наглядности, представим схематическую диаграмму:

/gui gui_proj.gpr gui.ads gui.adb

/comm comm_proj.gpr comm.ads comm.adb

Предположим, что в каталоге "/app" необходимо разработать приложение, которое будет указывать в спецификаторе with пакеты GUI и Comm, используя свойства соответствующих файлов проекта (например, установки опций и указание каталога сохранения объектных файлов).

Скелет кода для головной процедуры приложения может иметь следующий вид:

with GUI, Comm; procedure App_Main is

... begin

... end App_Main;

Файл проекта приложения "app_proj.gpr", который позволяет добиться желаемого эффекта, может выглядеть следующим образом:

with "/gui/gui_proj", "/comm/comm_proj"; project App_Proj is

for Main use ("app_main"); end App_Proj;

Сборка исполняемого файла приложения может быть получена с помощью команды:



Содержание  Назад  Вперед