-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprogramming_exercises.gpr
112 lines (93 loc) · 4.21 KB
/
programming_exercises.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
112
with "config/programming_exercises_config.gpr";
-- with "../string_checker/string_checker.gpr";
project Programming_Exercises is
for Source_Dirs use ("src/**");
for Object_Dir use "obj";
for Create_Missing_Dirs use "True";
for Exec_Dir use "bin";
for Main use ("programming_exercises.adb");
package Naming is
for Casing use "MixedCase";
end Naming;
type Enabled_Kind is ("enabled", "disabled");
Compile_Checks : Enabled_Kind := External ("PROGRAMMING_EXERCISES_COMPILE_CHECKS", "disabled");
Runtime_Checks : Enabled_Kind := External ("PROGRAMMING_EXERCISES_RUNTIME_CHECKS", "disabled");
Style_Checks : Enabled_Kind := External ("PROGRAMMING_EXERCISES_STYLE_CHECKS", "disabled");
Contracts_Checks : Enabled_Kind := External ("PROGRAMMING_EXERCISES_CONTRACTS", "disabled");
type Build_Kind is ("debug", "optimize");
Build_Mode : Build_Kind := External ("PROGRAMMING_EXERCISES_BUILD_MODE", "optimize");
Compile_Checks_Switches := (
"-gnat2020", "-gnatW8", "-gnatf",
"-gnatwa", "-gnatwe", "-gnatw.a", "-gnatw.b", "-gnatwc",
"-gnatw.c", "-gnatw_c", "-gnatwd", "-gnatw.d", "-gnatwf",
"-gnatw.f", "-gnatwg", "-gnatw.g", "-gnatwh", "-gnatw.h",
"-gnatwi","-gnatw.i", "-gnatwj", "-gnatw.j", "-gnatwk",
"-gnatw.k", "-gnatwl", "-gnatw.l", "-gnatwm","-gnatw.m",
"-gnatw.n", "-gnatwo", "-gnatw.o", "-gnatwp", "-gnatw.p",
"-gnatwq", "-gnatw.q", "-gnatwr", "-gnatw.r",
"-gnatw_r", "-gnatw.s", "-gnatwt", "-gnatw.t", "-gnatwu",
"-gnatw.u", "-gnatwv", "-gnatw.v", "-gnatww", "-gnatw.w",
"-gnatwx", "-gnatw.x", "-gnatwy", "-gnatwz", "-gnatw.z",
"-gnatVa", "-gnatVc", "-gnatVd", "-gnatVe", "-gnatVf",
"-gnatVi", "-gnatVm", "-gnatVo", "-gnatVp", "-gnatVr",
"-gnatVs", "-gnatVt"
);
case Compile_Checks is
when "enabled" =>
null;
when others =>
null;
end case;
Runtime_Checks_Switches := (
"-gnato", "-fstack-check"
);
case Runtime_Checks is
when "enabled" =>
null;
when others =>
null;
-- Runtime_Checks_Switches :=
-- ("-gnatp"); -- Suppress checks
end case;
Style_Checks_Switches := (
"-gnatya", "-gnatyA", "-gnatyC", "-gnatyd", "-gnatye",
"-gnatyf", "-gnatyh", "-gnatyi", "-gnatyk", "-gnatyl",
"-gnatyL8", "-gnatyM222", "-gnatyn", "-gnatyO", "-gnatyp",
"-gnatyr", "-gnatys", "-gnatyS", "-gnatyx"
);
case Style_Checks is
when "enabled" =>
null;
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
end case;
package Compiler is
for Default_Switches ("Ada") use
Compile_Checks_Switches &
Build_Switches &
Runtime_Checks_Switches &
Style_Checks_Switches &
Contracts_Switches &
("-gnatw.X", -- Disable warnings for No_Exception_Propagation
"-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;
end Programming_Exercises;