Ada.config.gpr Maven / Gradle / Ivy
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");
defaults := ("-gnat2012");
case Mode is
when "distrib" =>
for Default_Switches ("Ada") use defaults & ("-gnatafno", "-gnatVa", "-gnatwa");
when "debug" =>
for Default_Switches ("Ada") use defaults & warnings
& ("-gnata", "-gnatVaMI", "-gnaty3abcefhiklmnprstxM99");
when "optimize" =>
for Default_Switches ("Ada") use defaults & warnings
& ("-gnatn", "-gnatp", "-fdata-sections", "-ffunction-sections");
when "profile" =>
for Default_Switches ("Ada") use defaults & 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 "git";
end Ide;
end Config;