Skip to content

Commit dc3b0d0

Browse files
authored
refactor include files (#8)
1 parent dbeda2e commit dc3b0d0

File tree

5 files changed

+92
-135
lines changed

5 files changed

+92
-135
lines changed

QRCodeGenLib/src/Include/QRCodeGenLib.inc

Lines changed: 9 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -10,112 +10,21 @@
1010

1111
(* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *)
1212

13-
{$DEFINE DELPHI}
1413

15-
(* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *)
14+
{---------------------------- Compiler Family Switch --------------------------}
1615
{$IFDEF FPC}
17-
{$I QRCodeGenLibHelper.inc} // Had to Include this Since Delphi Does not allow "FPC_FULLVERSION" to Compile.
18-
{$UNDEF DELPHI}
19-
{$MODE delphi}
20-
21-
{$DEFINE USE_UNROLLED_VARIANT}
22-
23-
// Disable Overflow and RangeChecks.
24-
{$OVERFLOWCHECKS OFF}
25-
{$RANGECHECKS OFF}
26-
27-
// Enable Pointer Math
28-
{$POINTERMATH ON}
29-
30-
// Disable Warnings and Hints.
31-
{$WARNINGS OFF}
32-
{$HINTS OFF}
33-
{$NOTES OFF}
34-
35-
// Optimizations
36-
{$OPTIMIZATION LEVEL3}
37-
{$OPTIMIZATION PEEPHOLE}
38-
{$OPTIMIZATION REGVAR}
39-
{$OPTIMIZATION LOOPUNROLL}
40-
{$OPTIMIZATION STRENGTH}
41-
{$OPTIMIZATION CSE}
42-
{$OPTIMIZATION DFA}
43-
44-
{$IFDEF CPUI386}
45-
{$OPTIMIZATION USEEBP}
46-
{$ENDIF}
47-
48-
{$IFDEF CPUX86_64}
49-
{$OPTIMIZATION USERBP}
50-
{$ENDIF}
51-
52-
{$DEFINE Framework_FCL} // enable to force FCL mode
53-
{$IFDEF Framework_FCL}
54-
{$UNDEF LCL}
55-
{$DEFINE FCL}
16+
{$I QRCodeGenLibFPC.inc} // FPC-specific settings
5617
{$ELSE}
57-
{$DEFINE LCL}
18+
{$DEFINE DELPHI}
19+
{$I ../../QRCodeGenLib/src/Include/QRCodeGenLibDelphi.inc} // Delphi-specific settings
5820
{$ENDIF}
5921

60-
{$IFDEF LCL}
61-
{$DEFINE VCL_OR_LCL}
62-
{$ENDIF LCL}
63-
64-
{$ENDIF FPC}
65-
66-
(* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *)
67-
68-
{$IFDEF DELPHI}
69-
70-
{$DEFINE USE_UNROLLED_VARIANT}
71-
72-
// This option is needed to enable code browsing (aka Ctrl+Click)
73-
// It does not affect the binary size or generated code
74-
{$DEFINITIONINFO ON}
75-
76-
// Disable Overflow and RangeChecks.
22+
{-------------------------- Common Compiler Settings --------------------------}
23+
{$SCOPEDENUMS ON}
7724
{$OVERFLOWCHECKS OFF}
7825
{$RANGECHECKS OFF}
79-
80-
// Enable Pointer Math
8126
{$POINTERMATH ON}
27+
{$WARNINGS OFF}
28+
{$HINTS OFF}
8229

83-
// Disable String Checks
84-
{$STRINGCHECKS OFF}
85-
86-
// Disable Duplicate Constructor Warnings
87-
{$WARN DUPLICATE_CTOR_DTOR OFF}
88-
89-
// XE3 and Above
90-
{$IF CompilerVersion >= 24.0}
91-
{$DEFINE DELPHIXE3_UP}
92-
{$LEGACYIFEND ON}
93-
{$ZEROBASEDSTRINGS OFF}
94-
{$IFEND}
95-
96-
// XE and Above
97-
{$IF CompilerVersion >= 22.0}
98-
{$DEFINE DELPHIXE_UP}
99-
{$IFEND}
100-
101-
// XE3 and Above
102-
{$IFNDEF DELPHIXE3_UP}
103-
{$MESSAGE ERROR 'This Library requires Delphi XE3 or higher.'}
104-
{$ENDIF}
105-
106-
{.$DEFINE Framework_FMX} // enable to force FMX mode
107-
{$IFDEF Framework_FMX}
108-
{$UNDEF VCL}
109-
{$DEFINE FMX}
110-
{$ELSE}
111-
{$DEFINE VCL}
112-
{$ENDIF}
113-
114-
{$IFDEF VCL}
115-
{$DEFINE VCL_OR_LCL}
116-
{$ENDIF VCL}
117-
118-
{$ENDIF DELPHI}
119-
120-
(* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *)
121-
30+
(* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *)

QRCodeGenLib/src/Include/QRCodeGenLibHelper.inc renamed to QRCodeGenLib/src/Include/QRCodeGenLibDelphi.inc

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,30 @@
1010

1111
(* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *)
1212

13+
{$IFDEF DELPHI}
14+
{$DEFINITIONINFO ON} // IDE navigation; no binary impact
15+
{$STRINGCHECKS OFF}
16+
{$WARN DUPLICATE_CTOR_DTOR OFF}
1317

14-
{$MACRO ON}
15-
{$IFDEF ENDIAN_BIG}
16-
{$MESSAGE FATAL 'This Library does not support "Big Endian" processors yet.'}
18+
{.$DEFINE Framework_FMX} // enable to force FMX mode
19+
{$IFDEF Framework_FMX}
20+
{$UNDEF VCL}
21+
{$DEFINE FMX}
22+
{$ELSE}
23+
{$DEFINE VCL}
24+
{$ENDIF}
25+
26+
{$IFDEF VCL}
27+
{$DEFINE VCL_OR_LCL}
28+
{$ENDIF VCL}
29+
30+
// XE and Above
31+
{$IF CompilerVersion >= 22.0}
32+
{$DEFINE DELPHIXE_UP}
33+
{$IFEND}
34+
35+
{$IF CompilerVersion < 24.0}
36+
{$MESSAGE ERROR 'This Library requires Delphi XE3 or higher.'}
37+
{$IFEND}
1738
{$ENDIF}
18-
// FPC 3.0.0 and Above
19-
// Had to Include this here since Delphi does not allow it Compile in "QRCodeGenLib.inc".
20-
{$IF FPC_FULLVERSION < 30000}
21-
{$MESSAGE ERROR 'This Library requires FreePascal 3.0.0 or higher.'}
22-
{$IFEND}
39+
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
{ *********************************************************************************** }
2+
{ * QRCodeGenLib Library * }
3+
{ * Copyright (c) 2018 - 2019 Ugochukwu Mmaduekwe * }
4+
{ * Github Repository <https://github.com/Xor-el> * }
5+
6+
{ * Distributed under the MIT software license, see the accompanying file LICENSE * }
7+
{ * or visit http://www.opensource.org/licenses/mit-license.php. * }
8+
9+
{ * ******************************************************************************* * }
10+
11+
(* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *)
12+
13+
{$IFDEF FPC}
14+
{$IFDEF ENDIAN_BIG}
15+
{$MESSAGE FATAL 'This Library does not support "Big Endian" processors yet.'}
16+
{$ENDIF}
17+
18+
// FPC 3.0.0 and Above
19+
{$IF FPC_FULLVERSION < 30000}
20+
{$MESSAGE ERROR 'This Library requires FreePascal 3.0.0 or higher.'}
21+
{$IFEND}
22+
23+
{$DEFINE Framework_FCL} // enable to force FCL mode
24+
{$IFDEF Framework_FCL}
25+
{$UNDEF LCL}
26+
{$DEFINE FCL}
27+
{$ELSE}
28+
{$DEFINE LCL}
29+
{$ENDIF}
30+
31+
{$IFDEF LCL}
32+
{$DEFINE VCL_OR_LCL}
33+
{$ENDIF LCL}
34+
35+
{$MODE DELPHI}
36+
{$MACRO ON}
37+
{$NOTES OFF}
38+
{$OPTIMIZATION LEVEL3}
39+
{$OPTIMIZATION PEEPHOLE}
40+
{$OPTIMIZATION REGVAR}
41+
{$OPTIMIZATION LOOPUNROLL}
42+
{$OPTIMIZATION STRENGTH}
43+
{$OPTIMIZATION CSE}
44+
{$OPTIMIZATION DFA}
45+
{$IFDEF CPUI386} {$OPTIMIZATION USEEBP} {$ENDIF}
46+
{$IFDEF CPUX86_64} {$OPTIMIZATION USERBP} {$ENDIF}
47+
{$ENDIF}
48+

QRCodeGenLib/src/Packages/FPC/QRCodeGenLib4PascalPackage.lpk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<Description Value="QRCodeGenLib4Pascal is a Delphi/FPC compatible library that provides an easy to use interface for generating QR Codes.
2323
"/>
2424
<License Value="MIT License"/>
25-
<Version Major="1" Minor="8"/>
25+
<Version Major="1" Minor="9"/>
2626
<Files Count="18">
2727
<Item1>
2828
<Filename Value="..\..\QRCodeGen\QlpBitBuffer.pas"/>
@@ -73,7 +73,7 @@
7373
<Type Value="Include"/>
7474
</Item12>
7575
<Item13>
76-
<Filename Value="..\..\Include\QRCodeGenLibHelper.inc"/>
76+
<Filename Value="..\..\Include\QRCodeGenLibFPC.inc"/>
7777
<Type Value="Include"/>
7878
</Item13>
7979
<Item14>

QRCodeGenLib/src/QRCodeGen/QlpQrSegment.pas

Lines changed: 8 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -323,13 +323,9 @@ class function TQrSegment.IsAlphaNumeric(const AText: String): Boolean;
323323
LIdx, LBottom, LTop: Int32;
324324
LChar: Char;
325325
begin
326-
{$IFDEF DELPHIXE3_UP}
327-
LBottom := System.Low(AText);
328-
LTop := System.High(AText);
329-
{$ELSE}
330326
LBottom := 1;
331327
LTop := System.Length(AText);
332-
{$ENDIF DELPHIXE3_UP}
328+
333329
for LIdx := LBottom to LTop do
334330
begin
335331
LChar := AText[LIdx];
@@ -348,13 +344,9 @@ class function TQrSegment.IsNumeric(const AText: String): Boolean;
348344
LIdx, LBottom, LTop: Int32;
349345
LChar: Char;
350346
begin
351-
{$IFDEF DELPHIXE3_UP}
352-
LBottom := System.Low(AText);
353-
LTop := System.High(AText);
354-
{$ELSE}
355347
LBottom := 1;
356348
LTop := System.Length(AText);
357-
{$ENDIF DELPHIXE3_UP}
349+
358350
for LIdx := LBottom to LTop do
359351
begin
360352
LChar := AText[LIdx];
@@ -376,13 +368,10 @@ class function TQrSegment.MakeAlphaNumeric(const AText: String): IQrSegment;
376368
LBitBuffer := TBitBuffer.Create();
377369
LAccumData := 0;
378370
LAccumCount := 0;
379-
{$IFDEF DELPHIXE3_UP}
380-
LBottom := System.Low(AText);
381-
LTop := System.High(AText);
382-
{$ELSE}
371+
383372
LBottom := 1;
384373
LTop := System.Length(AText);
385-
{$ENDIF DELPHIXE3_UP}
374+
386375
for LIdx := LBottom to LTop do
387376
begin
388377
LChar := AText[LIdx];
@@ -472,13 +461,10 @@ class function TQrSegment.MakeNumeric(const ADigits: String): IQrSegment;
472461
LBitBuffer := TBitBuffer.Create();
473462
LAccumData := 0;
474463
LAccumCount := 0;
475-
{$IFDEF DELPHIXE3_UP}
476-
LBottom := System.Low(ADigits);
477-
LTop := System.High(ADigits);
478-
{$ELSE}
464+
479465
LBottom := 1;
480466
LTop := System.Length(ADigits);
481-
{$ENDIF DELPHIXE3_UP}
467+
482468
for LIdx := LBottom to LTop do
483469
begin
484470
LChar := ADigits[LIdx];
@@ -539,13 +525,10 @@ class function TQrSegment.MakeSegments(const AText: String;
539525
begin
540526
LFiller := -1;
541527
LMaxChar := -1;
542-
{$IFDEF DELPHIXE3_UP}
543-
LBottom := System.Low(ALPHANUMERIC_CHARSET);
544-
LTop := System.High(ALPHANUMERIC_CHARSET);
545-
{$ELSE}
528+
546529
LBottom := 1;
547530
LTop := System.Length(ALPHANUMERIC_CHARSET);
548-
{$ENDIF DELPHIXE3_UP}
531+
549532
for LIdx := LBottom to LTop do
550533
begin
551534
LMaxChar := Max(Ord(ALPHANUMERIC_CHARSET[LIdx]), LMaxChar);

0 commit comments

Comments
 (0)