-
Notifications
You must be signed in to change notification settings - Fork 16
/
tp_shared.gpr
107 lines (81 loc) · 3.58 KB
/
tp_shared.gpr
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;