Skip to content

Commit

Permalink
Configuration for GNAT projects
Browse files Browse the repository at this point in the history
  • Loading branch information
stcarrez committed Feb 28, 2017
1 parent 07610b5 commit ab54bba
Showing 1 changed file with 88 additions and 0 deletions.
88 changes: 88 additions & 0 deletions config.gpr
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
abstract project Config is
for Source_Dirs use ();

type Yes_No is ("yes", "no");

type Library_Type_Type is ("relocatable", "static");

type Mode_Type is ("distrib", "debug", "optimize", "profile");
Mode : Mode_Type := external ("MODE", "debug");

Coverage : Yes_No := External ("COVERAGE", "no");
Processors := External ("PROCESSORS", "1");

package Builder is
case Mode is
when "debug" =>
for Default_Switches ("Ada") use ("-g", "-j" & Processors);
when others =>
for Default_Switches ("Ada") use ("-g", "-O2", "-j" & Processors);
end case;
end Builder;

package compiler is
warnings := ("-gnatwua");

case Mode is
when "distrib" =>
for Default_Switches ("Ada") use ("-gnatafno", "-gnatVa", "-gnatwa");

when "debug" =>
for Default_Switches ("Ada") use warnings
& ("-gnata", "-gnatVaMI", "-gnaty3abcefhiklmnprstxM99");

when "optimize" =>
for Default_Switches ("Ada") use warnings
& ("-gnatn", "-gnatp", "-fdata-sections", "-ffunction-sections");

when "profile" =>
for Default_Switches ("Ada") use warnings & ("-pg");
end case;

case Coverage is
when "yes" =>
for Default_Switches ("ada") use Compiler'Default_Switches ("ada") &
("-fprofile-arcs", "-ftest-coverage");
when others =>
end case;
end compiler;

package binder is
case Mode is
when "debug" =>
for Default_Switches ("Ada") use ("-E");

when others =>
for Default_Switches ("Ada") use ("-E");

end case;
end binder;

package linker is
case Mode is
when "profile" =>
for Default_Switches ("Ada") use ("-pg");

when "distrib" =>
for Default_Switches ("Ada") use ("-s");

when "optimize" =>
for Default_Switches ("Ada") use ("-Wl,--gc-sections");

when others =>
null;
end case;

case Coverage is
when "yes" =>
for Default_Switches ("ada") use Linker'Default_Switches ("ada") &
("-fprofile-arcs");
when others =>
end case;
end linker;

package Ide is
for VCS_Kind use "Subversion";
end Ide;

end Config;

0 comments on commit ab54bba

Please sign in to comment.