-
Notifications
You must be signed in to change notification settings - Fork 4
/
asfml.gpr
111 lines (91 loc) · 3.43 KB
/
asfml.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
108
109
110
111
library project ASFML is
for Languages use ("Ada");
for Create_Missing_Dirs use "True";
for Source_Dirs use ("include");
for Object_Dir use "obj";
for Library_Name use "asfml";
for Library_Dir use "lib";
for Library_ALI_Dir use "lib";
for Library_Kind use "static";
type Enabled_Kind is ("enabled", "disabled");
Compile_Checks : Enabled_Kind := External ("ASFML_COMPILE_CHECKS", "enabled");
Runtime_Checks : Enabled_Kind := External ("ASFML_RUNTIME_CHECKS", "enabled");
Style_Checks : Enabled_Kind := External ("ASFML_STYLE_CHECKS", "enabled");
Contracts_Checks : Enabled_Kind := External ("ASFML_CONTRACTS", "enabled");
type Build_Kind is ("debug", "optimize");
Build_Mode : Build_Kind := External ("ASFML_BUILD_MODE", "optimize");
Compile_Checks_Switches := ();
case Compile_Checks is
when "enabled" =>
Compile_Checks_Switches :=
("-gnatwa"); -- All warnings
when others => null;
end case;
Runtime_Checks_Switches := ();
case Runtime_Checks is
when "enabled" => null;
when others =>
Runtime_Checks_Switches :=
("-gnatp"); -- Supress checks
end case;
Style_Checks_Switches := ();
case Style_Checks is
when "enabled" =>
Style_Checks_Switches :=
("-gnatyg", -- GNAT Style checks
"-gnatyd", -- No DOS line terminators
"-gnatyM80", -- Maximum line length
"-gnatyO"); -- Overriding subprograms explicitly marked as such
when others => null;
end case;
Contracts_Switches := ();
case Contracts_Checks is
when "enabled" =>
Contracts_Switches :=
("-gnata"); -- Enable assertions and contracts
when others => null;
end case;
Build_Switches := ();
case Build_Mode is
when "optimize" =>
Build_Switches := ("-O3", -- Optimization
"-gnatn"); -- Enable inlining
when "debug" =>
Build_Switches := ("-g", -- Debug info
"-Og", -- No optimization
"-gnatVa"); -- All validity checks
end case;
package Compiler is
for Default_Switches ("Ada") use
Compile_Checks_Switches &
Build_Switches &
Runtime_Checks_Switches &
Contracts_Switches &
("-gnatQ"); -- Don't quit. Generate ALI and tree files even if illegalities
end Compiler;
package Binder is
for Switches ("Ada") use ("-Es"); -- Symbolic traceback
end Binder;
package Linker is
for Linker_Options use
(
-- Add this if you need to provide your own compiled version of SFML/CSFML
-- "-L../../SFML/SFML/lib", "-L../../SFML/CSFML/lib",
-- "-lsfml-system", "-lsfml-audio", "-lsfml-network",
-- "-lsfml-audio", "-lsfml-graphics", "-lsfml-window",
-- End
"-lcsfml-system", "-lcsfml-audio", "-lcsfml-network",
"-lcsfml-audio", "-lcsfml-graphics", "-lcsfml-window",
"-lasfml"
);
end Linker;
package Documentation is
for Documentation_Dir use "doc";
for Doc_Pattern use "^/ |^/< ";
-- This considers comments beginning with "--/ " to be documentation
for Custom_Tags_Definition use "tools/sfml-doc-tags.py";
-- GNATdoc loads provided file on startup to process custom tags
for Image_Dir use "images";
for HTML_Custom_Dir use "tools/gnatdoc_html";
end Documentation;
end ASFML;