1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
------------------------------------------------------------------------------
-- Templates Parser --
-- --
-- Copyright (C) 2008-2022, AdaCore --
-- --
-- This is free software; you can redistribute it and/or modify it --
-- under terms of the GNU General Public License as published by the --
-- Free Software Foundation; either version 3, or (at your option) any --
-- later version. This software is distributed in the hope that it will --
-- be useful, but WITHOUT ANY WARRANTY; without even the implied warranty --
-- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --
-- General Public License for more details. --
-- --
-- You should have received a copy of the GNU General Public License --
-- distributed with this software; see file COPYING3. If not, go --
-- to http://www.gnu.org/licenses for a complete copy of the license. --
------------------------------------------------------------------------------
abstract project TP_Shared is
for Source_Dirs use ();
type Build_Type is ("Debug", "Release");
Build : Build_Type := external ("PRJ_BUILD", "Debug");
type Target_type is ("Windows", "macOS", "Linux", "FreeBSD", "UNIX");
Target_OS : Target_Type := external ("PRJ_TARGET");
type Tasking_Type is ("No_Tasking", "Standard_Tasking");
Tasking : Tasking_Type := external ("TP_TASKING", "Standard_Tasking");
type XMLAda_Type is ("Installed", "Disabled");
XMLAda : XMLAda_Type := external ("TP_XMLADA", "Disabled");
type Library_Kind is ("relocatable", "static", "static-pic");
Library_Type : Library_Kind := external ("LIBRARY_TYPE", "static");
Processors := external ("PROCESSORS", "0");
Version := external ("VERSION", "dev");
Build_Dir := ".build";
Adaflags := external_as_list ("ADAFLAGS", " ");
Ldflags := external_as_list ("LDFLAGS", " ");
--------------
-- Compiler --
--------------
Common_Options :=
("-gnat2022", "-gnatwcfijkmruv", "-gnaty3abcdefhiIklmnoOprstx");
-- Common options used for the Debug and Release modes
Debug_Options :=
("-g", "-gnata", "-gnatVa", "-gnatQ", "-gnato", "-gnatwe", "-Wall");
Release_Options :=
("-O2", "-gnatn");
package Compiler is
case Build is
when "Release" =>
for Default_Switches ("Ada") use Common_Options & Release_Options;
when "Debug" =>
for Default_Switches ("Ada") use Common_Options & Debug_Options;
end case;
for Default_Switches ("Ada")
use Compiler'Default_Switches ("Ada") & Adaflags;
-- Put user flags at they end so that they take precedence.
end Compiler;
------------
-- Binder --
------------
package Binder is
for Default_Switches ("Ada") use ("-E", "-Vversion=" & Version);
end Binder;
-------------
-- Builder --
-------------
package Builder is
for Default_Switches ("Ada") use ("-m", "-j" & Processors);
end Builder;
------------
-- Linker --
------------
package Linker is
-- Put options like --as-needed before options like -l.
for Leading_Switches ("Ada") use Ldflags;
end Linker;
---------
-- Ide --
---------
package Ide is
for VCS_Kind use "auto";
end Ide;
end TP_Shared;
|