Previous: Use GNAT project file, Up: Compiling Examples

6.5 Use multiple GNAT project files

In this example, we show how to use multiple GNAT project files, specifying the GNAT project search path in an Ada mode project file.

Create the directory Example_4 as specified in Use GNAT project file.

Create the directory Example_5, containing:

hello_5.adb:

     with Hello_Pkg;
     with Ada.Text_IO; use Ada.Text_IO;
     procedure Hello_5
     is begin
        Hello_Pkg.Say_Hello;
        Put_Line ("From hello_5");
     end Hello_5;

There are no errors in this file.

hello_5.adp:

     ada_project_path=../Example_4/Gnat_Project
     gpr_file=hello_5.gpr

hello_5.gpr:

     with "hello_4";
     Project Hello_5 is
        for Source_Dirs use (".");
        package Compiler is
           for Default_Switches ("Ada") use ("-g", "-gnatyt");
        end Compiler;
     end Hello_5;

In buffer hello_5.adb, invoke ‘Ada | Project | Load...’, and select Example_5/hello_5.adp.

Then, again in hello_5.adb, invoke ‘Ada | Set main and Build’. You should get a *compilation* buffer containing something like (the directory paths will be different):

     cd c:/Examples/Example_5/
     gnatmake -o hello_5 hello_5 -Phello_5.gpr -g -cargs -gnatq -gnatQ -bargs  -largs
     gcc -c -g -gnatyt -g -gnatq -gnatQ -I- -gnatA c:\Examples\Example_5\hello_5.adb
     gcc -c -g -gnatyt -g -gnatq -gnatQ -I- -gnatA c:\Examples\Example_4\hello_pkg.adb
     hello_pkg.adb:2:08: keyword "body" expected here [see file name]
     gnatmake: "c:\examples\example_4\hello_pkg.adb" compilation error

Now type C-x `. Example_4/hello_pkg.adb is shown, demonstrating that hello_5.gpr and hello_4.gpr are being used to set the compilation search path.