project Template is type Build_Type is ("Debug", "Release", "No_Options", "Profile"); Build : Build_Type := external ("Build", "Debug"); for Source_Dirs use ("."); for Object_Dir use "obj"; for Exec_Dir use "obj"; for Languages use ("ada"); for Main use ("main.adb"); package Ide is for Vcs_Kind use "Subversion"; end Ide; package Compiler is for Default_Switches ("c") use ("-g"); for Default_Switches ("ada") use ("-g", "-gnatf", "-gnat05", "-gnatwcfjklmopruvz", "-gnatyacehikn", "-gnatqQ"); case Build is when "Profile" => for Default_Switches ("ada") use Compiler'Default_Switches ("ada") & ("-O2", "-gnato", "-fstack-check", "-gnata", "-gnatpg"); when "Debug" => for Default_Switches ("ada") use Compiler'Default_Switches ("ada") & ("-O2", "-gnato", "-fstack-check", "-gnata"); when "Release" => for Default_Switches ("ada") use Compiler'Default_Switches ("ada") & ("-O2", "-gnatn", "-gnatN"); when "No_Options" => for Default_Switches ("ada") use ("-gnat05"); -- Deliberately override default switches not to have any! end case; end Compiler; package Binder is for Default_Switches ("ada") use ("-E", "-g"); end Binder; package Linker is for Default_Switches ("ada") use ("-g", "-Wl,--gc-sections"); for Default_Switches ("c") use ("-g"); for Default_Switches ("c++") use ("-g"); end Linker; package Builder is for Default_Switches ("ada") use ("-g"); end Builder; package Pretty_Printer is for Default_Switches ("ada") use ("-A1", "-A2", "-A3", "-A4"); end Pretty_Printer; package Naming is for Specification_Suffix ("C") use ".h"; for Implementation_Suffix ("C") use ".c"; for Specification_Suffix ("C++") use ".hh"; for Implementation_Suffix ("C++") use ".cpp"; for Implementation_Suffix ("C++") use ".cc"; for Specification_Suffix ("Changelog") use "changelog"; for Specification_Suffix ("Project file") use ".gpr"; for Specification_Suffix ("Python") use ".py"; end Naming; end Template;