|
15 | 15 |
|
16 | 16 | (* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *) |
17 | 17 |
|
18 | | -{$DEFINE DELPHI} |
19 | 18 |
|
20 | | -(* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *) |
| 19 | +{---------------------------- Compiler Family Switch --------------------------} |
21 | 20 | {$IFDEF FPC} |
22 | | -{$I CryptoLibHelper.inc} // Had to Include this Since Delphi Does not allow "FPC_FULLVERSION" to Compile. |
23 | | -{$UNDEF DELPHI} |
24 | | -{$MODE delphi} |
25 | | - |
26 | | -{$IFDEF CPU386} |
27 | | - {$DEFINE CRYPTOLIB_X86} |
28 | | -{$ENDIF} |
29 | | - |
30 | | -{$IFDEF CPUX64} |
31 | | - {$DEFINE CRYPTOLIB_X86_64} |
32 | | -{$ENDIF} |
33 | | - |
34 | | -{$IFDEF CPUARM} |
35 | | - {$DEFINE CRYPTOLIB_ARM} |
36 | | -{$ENDIF} |
37 | | - |
38 | | -{$IFDEF CPUAARCH64} |
39 | | - {$DEFINE CRYPTOLIB_AARCH64} |
40 | | -{$ENDIF} |
41 | | - |
42 | | -{$IFDEF IPHONESIM} |
43 | | - {$DEFINE CRYPTOLIB_IOSSIM} |
44 | | -{$ENDIF} |
45 | | - |
46 | | -{$IF DEFINED(MSWINDOWS)} |
47 | | - {$DEFINE CRYPTOLIB_MSWINDOWS} |
48 | | -{$ELSEIF DEFINED(UNIX)} |
49 | | - {$DEFINE CRYPTOLIB_UNIX} |
50 | | - {$IF DEFINED(BSD)} |
51 | | - {$IF DEFINED(DARWIN)} |
52 | | - {$DEFINE CRYPTOLIB_APPLE} |
53 | | - {$IF DEFINED(CRYPTOLIB_ARM) OR DEFINED(CRYPTOLIB_AARCH64)} |
54 | | - {$DEFINE CRYPTOLIB_IOS} |
55 | | - {$ELSE} |
56 | | - {$DEFINE CRYPTOLIB_MACOS} |
57 | | - {$IFEND} |
58 | | - {$ELSEIF DEFINED(FREEBSD) OR DEFINED(NETBSD) OR DEFINED(OPENBSD) OR DEFINED(DRAGONFLY)} |
59 | | - {$DEFINE CRYPTOLIB_GENERIC_BSD} |
60 | | - {$IFEND} |
61 | | - {$ELSEIF DEFINED(ANDROID)} |
62 | | - {$DEFINE CRYPTOLIB_ANDROID} |
63 | | - {$ELSEIF DEFINED(LINUX)} |
64 | | - {$DEFINE CRYPTOLIB_LINUX} |
65 | | - {$ELSEIF DEFINED(SOLARIS)} |
66 | | - {$DEFINE CRYPTOLIB_SOLARIS} |
67 | | - {$ELSE} |
68 | | - {$DEFINE CRYPTOLIB_UNDEFINED_UNIX_VARIANTS} |
69 | | - {$IFEND} |
| 21 | + {$I CryptoLibFPC.inc} // FPC-specific settings |
70 | 22 | {$ELSE} |
71 | | - {$MESSAGE ERROR 'UNSUPPORTED TARGET.'} |
72 | | -{$IFEND} |
73 | | - |
74 | | -{$IFDEF CRYPTOLIB_ANDROID} |
75 | | - {$DEFINE CRYPTOLIB_LINUX} |
| 23 | + {$DEFINE DELPHI} |
| 24 | + {$I ../../CryptoLib/src/Include/CryptoLibDelphi.inc} // Delphi-specific settings |
76 | 25 | {$ENDIF} |
77 | 26 |
|
78 | | -{$IF DEFINED(CRYPTOLIB_LINUX) OR DEFINED(CRYPTOLIB_SOLARIS)} |
79 | | - {$DEFINE CRYPTOLIB_HAS_GETRANDOM} |
80 | | -{$IFEND} |
81 | | - |
82 | | -{$DEFINE USE_UNROLLED_VARIANT} |
83 | | - |
84 | | -// Disable Overflow and RangeChecks. |
| 27 | +{-------------------------- Common Compiler Settings --------------------------} |
| 28 | +{$SCOPEDENUMS ON} |
85 | 29 | {$OVERFLOWCHECKS OFF} |
86 | 30 | {$RANGECHECKS OFF} |
87 | | - |
88 | | -// Enable Pointer Math |
89 | 31 | {$POINTERMATH ON} |
90 | | - |
91 | | -// Disable Warnings and Hints. |
92 | 32 | {$WARNINGS OFF} |
93 | 33 | {$HINTS OFF} |
94 | | -{$NOTES OFF} |
95 | | - |
96 | | -// Optimizations |
97 | | -{$OPTIMIZATION LEVEL3} |
98 | | -// disable "USELOADMODIFYSTORE" because it produces incorrect result |
99 | | -// when used in combination with -CpCOREAVX2 and -OpCOREAVX2 in FPC 3.2.0 beta |
100 | | -{$IFDEF FPC_GREATER_THAN_3.0.4} |
101 | | - {$OPTIMIZATION NOUSELOADMODIFYSTORE} |
102 | | -{$ENDIF} |
103 | | -// level 4 optimizations |
104 | | -{$OPTIMIZATION ORDERFIELDS} |
105 | | -{$OPTIMIZATION DEADVALUES} |
106 | | - |
107 | | -{$IFDEF CPUI386} |
108 | | - {$OPTIMIZATION USEEBP} |
109 | | -{$ENDIF} |
110 | | - |
111 | | -{$IFDEF CPUX86_64} |
112 | | - {$OPTIMIZATION USERBP} |
113 | | -{$ENDIF} |
114 | | - |
115 | | -{$ENDIF FPC} |
116 | | - |
117 | | -(* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *) |
118 | | - |
119 | | -{$IFDEF DELPHI} |
120 | | - |
121 | | - // XE3 and Above |
122 | | -{$IF CompilerVersion >= 24.0} |
123 | | - {$DEFINE DELPHIXE3_UP} |
124 | | - {$DEFINE SUPPORT_TSTREAM_READ_BYTEARRAY_OVERLOAD} |
125 | | - {$DEFINE SUPPORT_TSTREAM_WRITE_BYTEARRAY_OVERLOAD} |
126 | | - {$LEGACYIFEND ON} |
127 | | - {$ZEROBASEDSTRINGS OFF} |
128 | | -{$IFEND} |
129 | | - |
130 | | - // XE and Above |
131 | | -{$IF CompilerVersion >= 22.0} |
132 | | - {$DEFINE DELPHIXE_UP} |
133 | | -{$IFEND} |
134 | | - |
135 | | - // XE4 and Above |
136 | | -{$IF CompilerVersion >= 25.0} |
137 | | - {$DEFINE DELPHIXE4_UP} |
138 | | - {$DEFINE SHIFT_OVERFLOW_BUG_FIXED} |
139 | | -{$IFEND} |
140 | | - |
141 | | - // 10.1 Berlin and Above |
142 | | -{$IF CompilerVersion >= 31.0} |
143 | | - {$DEFINE DELPHI10.1_BERLIN_UP} |
144 | | - {$DEFINE HAS_VOLATILE} |
145 | | -{$IFEND} |
146 | | - |
147 | | - // 10.2 Tokyo and Above |
148 | | -{$IF CompilerVersion >= 32.0} |
149 | | - {$DEFINE DELPHI10.2_TOKYO_UP} |
150 | | -{$IFEND} |
151 | | - |
152 | | - // 10.2 Tokyo and Above |
153 | | -{$IFNDEF DELPHI10.2_TOKYO_UP} |
154 | | - {$MESSAGE ERROR 'This Library requires Delphi Tokyo or higher.'} |
155 | | -{$ENDIF} |
156 | | - |
157 | | -{$IFDEF CPU386} |
158 | | - {$DEFINE CRYPTOLIB_X86} |
159 | | -{$ENDIF} |
160 | | - |
161 | | -{$IFDEF CPUX64} |
162 | | - {$DEFINE CRYPTOLIB_X86_64} |
163 | | -{$ENDIF} |
164 | | - |
165 | | -{$IFDEF CPUARM32} |
166 | | - {$DEFINE CRYPTOLIB_ARM} |
167 | | -{$ENDIF} |
168 | | - |
169 | | -{$IFDEF CPUARM64} |
170 | | - {$DEFINE CRYPTOLIB_AARCH64} |
171 | | -{$ENDIF} |
172 | | - |
173 | | -{$IFDEF IOS} |
174 | | - {$IFNDEF CPUARM} |
175 | | - {$DEFINE CRYPTOLIB_IOSSIM} |
176 | | - {$ENDIF} |
177 | | -{$ENDIF} |
178 | | - |
179 | | -{$IFDEF IOS} |
180 | | - {$DEFINE CRYPTOLIB_IOS} |
181 | | -{$ENDIF} |
182 | | - |
183 | | -{$IFDEF MSWINDOWS} |
184 | | - {$DEFINE CRYPTOLIB_MSWINDOWS} |
185 | | -{$ENDIF} |
186 | | - |
187 | | -{$IFDEF MACOS} |
188 | | - {$IFNDEF IOS} |
189 | | - {$DEFINE CRYPTOLIB_MACOS} |
190 | | - {$ENDIF} |
191 | | -{$ENDIF} |
192 | | - |
193 | | -{$IFDEF ANDROID} |
194 | | - {$DEFINE CRYPTOLIB_ANDROID} |
195 | | -{$ENDIF} |
196 | | - |
197 | | -{$IF DEFINED(CRYPTOLIB_IOS) OR DEFINED(CRYPTOLIB_MACOS)} |
198 | | - {$DEFINE CRYPTOLIB_APPLE} |
199 | | -{$IFEND} |
200 | | - |
201 | | -{$IF DEFINED(LINUX) OR DEFINED(CRYPTOLIB_ANDROID)} |
202 | | - {$DEFINE CRYPTOLIB_LINUX} |
203 | | -{$IFEND} |
204 | | - |
205 | | -{$IFDEF CRYPTOLIB_LINUX} |
206 | | - {$DEFINE CRYPTOLIB_HAS_GETRANDOM} |
207 | | -{$ENDIF} |
208 | | - |
209 | | -{$IF DEFINED(CRYPTOLIB_APPLE) OR DEFINED(CRYPTOLIB_LINUX)} |
210 | | - {$DEFINE CRYPTOLIB_UNIX} |
211 | | -{$IFEND} |
212 | | - |
213 | | -{$DEFINE USE_UNROLLED_VARIANT} |
214 | | - |
215 | | -// This option is needed to enable code browsing (aka Ctrl+Click) |
216 | | -// It does not affect the binary size or generated code |
217 | | -{$DEFINITIONINFO ON} |
218 | | - |
219 | | -// Disable Overflow and RangeChecks. |
220 | | -{$OVERFLOWCHECKS OFF} |
221 | | -{$RANGECHECKS OFF} |
222 | | - |
223 | | - // Enable Pointer Math |
224 | | -{$POINTERMATH ON} |
225 | | - |
226 | | -// Disable String Checks |
227 | | -{$STRINGCHECKS OFF} |
228 | | - |
229 | | -// Disable Duplicate Constructor Warnings |
230 | | -{$WARN DUPLICATE_CTOR_DTOR OFF} |
231 | | - |
232 | | -// Disable Deprecated Warnings |
233 | | -{$WARN SYMBOL_DEPRECATED OFF} |
234 | | - |
235 | | -{$ENDIF DELPHI} |
236 | | - |
237 | | -(* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *) |
238 | 34 |
|
| 35 | +(* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *) |
0 commit comments