ada-mode: Set compiler options

 
 6.2 Set compiler options
 ========================
 
 This example illustrates using an Emacs Ada mode project file to set a
 compiler option.
 
    If you have files from ‘Example_1’ open in Emacs, you should close
 them so you don’t get confused.  Use menu ‘File | Close (current
 buffer)’.
 
    In directory ‘Example_2’, create these files:
 
    ‘hello.adb’:
 
      with Ada.Text_IO;
      procedure Hello
      is begin
         Put_Line("Hello from hello.adb");
      end Hello;
 
    This is the same as ‘hello.adb’ from ‘Example_1’.  It has two errors;
 missing “use Ada.Text_IO;”, and no space between ‘Put_Line’ and its
 argument list.
 
    ‘hello.adp’:
 
      comp_opt=-gnatyt
 
    This tells the GNAT compiler to check for token spacing; in
 particular, there must be a space preceding a parenthesis.
 
    In buffer ‘hello.adb’, invoke ‘Ada | Project | Load...’, and select
 ‘Example_2/hello.adp’.
 
    Then, again in buffer ‘hello.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_2/
      gnatmake -o hello hello -g -cargs -gnatyt  -bargs  -largs
      gcc -c -g -gnatyt hello.adb
      hello.adb:4:04: "Put_Line" is not visible
      hello.adb:4:04: non-visible declaration at a-textio.ads:264
      hello.adb:4:04: non-visible declaration at a-textio.ads:260
      hello.adb:4:12: (style) space required
      gnatmake: "hello.adb" compilation error
 
    Compare this to the compiler output in SeeNo project files; the
 gnatmake option ‘-cargs -gnatq -gnatQ’ has been replaced by ‘-cargs
 -gnaty’, and an additional error is reported in ‘hello.adb’ on line 4.
 This shows that ‘hello.adp’ is being used to set the compiler options.
 
    Fixing the error, linking and running the code proceed as in SeeNo
 project files.