-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathblake2s.gpr
125 lines (110 loc) · 4.84 KB
/
blake2s.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
113
114
115
116
117
118
119
120
121
122
123
124
125
-----------------------------------------------------------------------
-- Copyright 2021 Lev Kujawski --
-- --
-- Permission is hereby granted, free of charge, to any person --
-- obtaining a copy of this software and associated documentation --
-- files (the "Software") to deal in the Software without --
-- restriction, including without limitation the rights to use, --
-- copy, modify, merge, publish, distribute, sublicense, and sell --
-- copies of the Software, and to permit persons to whom the --
-- Software is furnished to do so. --
-- --
-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, --
-- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES --
-- OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND --
-- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT --
-- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, --
-- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING --
-- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR --
-- OTHER DEALINGS IN THE SOFTWARE. --
-- --
-- SPDX-License-Identifier: MIT-0 --
-- --
-- File: blake2s.gpr --
-- Language: GPRBuild --
-- Author: Lev Kujawski --
-----------------------------------------------------------------------
project BLAKE2S is
for Library_Name use "b2sa";
for Library_Version use "0.1.4";
type Library_Type_Type is ("relocatable", "static", "static-pic");
Library_Type : Library_Type_Type :=
external ("BLAKE2S_LIBRARY_TYPE",
external ("LIBRARY_TYPE", "static"));
for Library_Kind use Library_Type;
for Source_Dirs use ("gnat", "common");
for Object_Dir use "gnat/obj";
for Library_Dir use "gnat/lib";
for Create_Missing_Dirs use "True";
package Naming is
for Casing use "lowercase";
for Spec ("BLAKE2S") use "blake2s.ads";
for Body ("BLAKE2S") use "blake2s.adb";
for Spec ("Octets") use "octets.ads";
for Spec ("Octet_Arrays") use "octearra.ads";
for Spec ("Quadlets") use "quadlets.ads";
for Body ("Quadlets") use "quadlets.adb";
end Naming;
type Enabled_Kind is ("enabled", "disabled");
Compile_Checks : Enabled_Kind :=
External ("BLAKE2S_COMPILE_CHECKS", "disabled");
Runtime_Checks : Enabled_Kind :=
External ("BLAKE2S_RUNTIME_CHECKS", "disabled");
Style_Checks : Enabled_Kind :=
External ("BLAKE2S_STYLE_CHECKS", "disabled");
Contracts_Checks : Enabled_Kind :=
External ("BLAKE2S_CONTRACTS", "disabled");
type Build_Kind is ("debug", "optimize");
Build_Mode : Build_Kind :=
External ("BLAKE2S_BUILD_MODE", "optimize");
Compile_Checks_Switches := ();
case Compile_Checks is
when "enabled" =>
Compile_Checks_Switches :=
("-gnatVa", -- Enable all validity checks
"-gnatwadltJ", -- Enable warnings, minus obsolescent
"-gnatwe"); -- Treat warnings as errors
when others => null;
end case;
Runtime_Checks_Switches := ();
case Runtime_Checks is
when "enabled" => null;
when others =>
Runtime_Checks_Switches :=
("-gnatp"); -- Suppress checks
end case;
Style_Checks_Switches := ();
case Style_Checks is
when "enabled" =>
Style_Checks_Switches :=
("-gnaty3abcefhiklM72nprtux");
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 front-end inlining
when "debug" =>
Build_Switches := ("-g", -- Emit debugging data
"-Og"); -- Disable optimization
end case;
package Compiler is
for Default_Switches ("Ada") use
Compile_Checks_Switches &
Build_Switches &
Runtime_Checks_Switches &
Style_Checks_Switches &
Contracts_Switches;
end Compiler;
package Binder is
for Switches ("Ada") use ("-Es"); -- Symbolic tracebacks
end Binder;
end BLAKE2S;