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



         

Утилита gnatmake и файлы проектов - часть 3


в показанном ниже файле проекта:

project Proj1 is

package Compiler is

for Default_Switches ("Ada") use ("-g"); for Switches ("a.adb") use ("-O1"); for Switches ("b.adb") use ("-O2", "-gnaty"); end Compiler; end Proj1;

В этом случае, при запуске утилиты gnatmake с указанием этого файла проекта, когда необходимо осуществить компиляцию файлов "a.adb", "b.adb" и "c.adb", файл "a.adb" будет компилироваться с опцией "-O1", файл "b.adb" будет компилироваться с опциями "-O2" и "-gnaty", а файл "c.adb" будет компилироваться с опцией "-g".

Следующий пример демонстрирует упорядочивание опций, которые предоставлены различными пакетами:

project Proj2 is

package Builder is

for Switches ("main.adb") use ("-g", "-O1", "-f"); end Builder;

packager Compiler is

for Switches ("main.adb") use ("-O2"); end Compiler; end Proj2;

При использовании команды:

gnatmake -PProj2 -O0 main

Компилятор будет запущен для компиляции "main.adb" с указанием следующей последовательности опций командной строки:

-g -O1 -O2 -O0

В этом случае, последняя опция "-O" будет иметь приоритет перед всеми предыдущими опциями "-O". Некоторые другие опции (например, такие как "-c") будут добавлены неявно.

В рассматриваемом примере, опции "-g" и "-O1" обеспечиваются пакетом Builder, опция "-O2" обеспечена пакетом Compiler, а опция "-O0" была указана в командной строке.

Следует заметить, что опция "-g" будет также передаваться при запуске gnatlink.

Заключительный пример демонстрирует предоставление опций из пакетов, которые описаны в различных файлах проектов:

project Proj3 is

for Source_Files use ("pack.ads", "pack.adb"); package Compiler is

for Default_Switches ("Ada") use ("-gnata"); end Compiler; end Proj3;

with "Proj3"; project Proj4 is

for Source_Files use ("foo_main.adb", "bar_main.adb"); package Builder is

for Switches ("foo_main.adb") use ("-s", "-g"); end Builder; end Proj4;

-- Ada source file: with Pack; procedure Foo_Main is

... end Foo_Main;

<


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