Ugochukwu Mmaduekwe 12 цаг өмнө
parent
commit
dc3b0d052f

+ 9 - 100
QRCodeGenLib/src/Include/QRCodeGenLib.inc

@@ -10,112 +10,21 @@
 
 (* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *)
 
- {$DEFINE DELPHI}
 
-(* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *)
+{---------------------------- Compiler Family Switch --------------------------}
 {$IFDEF FPC}
-{$I QRCodeGenLibHelper.inc} // Had to Include this Since Delphi Does not allow "FPC_FULLVERSION" to Compile.
-{$UNDEF DELPHI}
-{$MODE delphi}
-
-{$DEFINE USE_UNROLLED_VARIANT}
-
-// Disable Overflow and RangeChecks.
-{$OVERFLOWCHECKS OFF}
-{$RANGECHECKS OFF}
-
-// Enable Pointer Math
-{$POINTERMATH ON}
-
-// Disable Warnings and Hints.
-{$WARNINGS OFF}
-{$HINTS OFF}
-{$NOTES OFF}
-
-// Optimizations
-{$OPTIMIZATION LEVEL3}
-{$OPTIMIZATION PEEPHOLE}
-{$OPTIMIZATION REGVAR}
-{$OPTIMIZATION LOOPUNROLL}
-{$OPTIMIZATION STRENGTH}
-{$OPTIMIZATION CSE}
-{$OPTIMIZATION DFA}
-
-{$IFDEF CPUI386}
-   {$OPTIMIZATION USEEBP}
-{$ENDIF}
-
-{$IFDEF CPUX86_64}
-   {$OPTIMIZATION USERBP}
-{$ENDIF}
-
-{$DEFINE Framework_FCL} // enable to force FCL mode
-{$IFDEF Framework_FCL}
-   {$UNDEF LCL}
-   {$DEFINE FCL}
+  {$I QRCodeGenLibFPC.inc} // FPC-specific settings
 {$ELSE}
-   {$DEFINE LCL}
+  {$DEFINE DELPHI}
+  {$I ../../QRCodeGenLib/src/Include/QRCodeGenLibDelphi.inc} // Delphi-specific settings
 {$ENDIF}
 
-{$IFDEF LCL}
-   {$DEFINE VCL_OR_LCL}
-{$ENDIF LCL}
-
-{$ENDIF FPC}
-
-(* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *)
-
-{$IFDEF DELPHI}
-
-{$DEFINE USE_UNROLLED_VARIANT}
-
-// This option is needed to enable code browsing (aka Ctrl+Click)
-// It does not affect the binary size or generated code
-{$DEFINITIONINFO ON}
-
-// Disable Overflow and RangeChecks.
+{-------------------------- Common Compiler Settings --------------------------}
+{$SCOPEDENUMS ON}
 {$OVERFLOWCHECKS OFF}
 {$RANGECHECKS OFF}
-
- // Enable Pointer Math
 {$POINTERMATH ON}
+{$WARNINGS OFF}
+{$HINTS OFF}
 
-// Disable String Checks
-{$STRINGCHECKS OFF}
-
-// Disable Duplicate Constructor Warnings
-{$WARN DUPLICATE_CTOR_DTOR OFF}
-
- // XE3 and Above
-{$IF CompilerVersion >= 24.0}
-   {$DEFINE DELPHIXE3_UP}
-   {$LEGACYIFEND ON}
-   {$ZEROBASEDSTRINGS OFF}
-{$IFEND}
-
-  // XE and Above
-{$IF CompilerVersion >= 22.0}
-   {$DEFINE DELPHIXE_UP}
-{$IFEND}
-
-  // XE3 and Above
-{$IFNDEF DELPHIXE3_UP}
-   {$MESSAGE ERROR 'This Library requires Delphi XE3 or higher.'}
-{$ENDIF}
-
-{.$DEFINE Framework_FMX} // enable to force FMX mode
-{$IFDEF Framework_FMX}
-   {$UNDEF VCL}
-   {$DEFINE FMX}
-{$ELSE}
-   {$DEFINE VCL}
-{$ENDIF}
-
-{$IFDEF VCL}
-   {$DEFINE VCL_OR_LCL}
-{$ENDIF VCL}
-
-{$ENDIF DELPHI}
-
-(* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *)
-
+(* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *)

+ 25 - 8
QRCodeGenLib/src/Include/QRCodeGenLibHelper.inc → QRCodeGenLib/src/Include/QRCodeGenLibDelphi.inc

@@ -10,13 +10,30 @@
 
 (* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *)
 
+{$IFDEF DELPHI}
+  {$DEFINITIONINFO ON}       // IDE navigation; no binary impact
+  {$STRINGCHECKS OFF}
+  {$WARN DUPLICATE_CTOR_DTOR OFF}
 
-{$MACRO ON}
-{$IFDEF ENDIAN_BIG}
-   {$MESSAGE FATAL 'This Library does not support "Big Endian" processors yet.'}
+  {.$DEFINE Framework_FMX} // enable to force FMX mode
+  {$IFDEF Framework_FMX}
+     {$UNDEF VCL}
+     {$DEFINE FMX}
+  {$ELSE}
+     {$DEFINE VCL}
+  {$ENDIF}
+
+  {$IFDEF VCL}
+     {$DEFINE VCL_OR_LCL}
+  {$ENDIF VCL}
+
+  // XE and Above
+  {$IF CompilerVersion >= 22.0}
+     {$DEFINE DELPHIXE_UP}
+  {$IFEND}
+
+  {$IF CompilerVersion < 24.0}
+    {$MESSAGE ERROR 'This Library requires Delphi XE3 or higher.'}
+  {$IFEND}
 {$ENDIF}
-// FPC 3.0.0 and Above
-// Had to Include this here since Delphi does not allow it Compile in "QRCodeGenLib.inc".
-{$IF FPC_FULLVERSION < 30000}
-   {$MESSAGE ERROR 'This Library requires FreePascal 3.0.0 or higher.'}
-{$IFEND}
+

+ 48 - 0
QRCodeGenLib/src/Include/QRCodeGenLibFPC.inc

@@ -0,0 +1,48 @@
+{ *********************************************************************************** }
+{ *                              QRCodeGenLib Library                               * }
+{ *                 Copyright (c) 2018 - 2019 Ugochukwu Mmaduekwe                   * }
+{ *                 Github Repository <https://github.com/Xor-el>                   * }
+
+{ *  Distributed under the MIT software license, see the accompanying file LICENSE  * }
+{ *          or visit http://www.opensource.org/licenses/mit-license.php.           * }
+
+{ * ******************************************************************************* * }
+
+(* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *)
+
+{$IFDEF FPC}
+  {$IFDEF ENDIAN_BIG}
+     {$MESSAGE FATAL 'This Library does not support "Big Endian" processors yet.'}
+  {$ENDIF}
+
+  // FPC 3.0.0 and Above
+  {$IF FPC_FULLVERSION < 30000}
+     {$MESSAGE ERROR 'This Library requires FreePascal 3.0.0 or higher.'}
+  {$IFEND}
+
+  {$DEFINE Framework_FCL} // enable to force FCL mode
+  {$IFDEF Framework_FCL}
+     {$UNDEF LCL}
+     {$DEFINE FCL}
+  {$ELSE}
+     {$DEFINE LCL}
+  {$ENDIF}
+
+  {$IFDEF LCL}
+     {$DEFINE VCL_OR_LCL}
+  {$ENDIF LCL}
+
+  {$MODE DELPHI}
+  {$MACRO ON}
+  {$NOTES OFF}
+  {$OPTIMIZATION LEVEL3}
+  {$OPTIMIZATION PEEPHOLE}
+  {$OPTIMIZATION REGVAR}
+  {$OPTIMIZATION LOOPUNROLL}
+  {$OPTIMIZATION STRENGTH}
+  {$OPTIMIZATION CSE}
+  {$OPTIMIZATION DFA}
+  {$IFDEF CPUI386}  {$OPTIMIZATION USEEBP} {$ENDIF}
+  {$IFDEF CPUX86_64} {$OPTIMIZATION USERBP} {$ENDIF}
+{$ENDIF}
+

+ 2 - 2
QRCodeGenLib/src/Packages/FPC/QRCodeGenLib4PascalPackage.lpk

@@ -22,7 +22,7 @@
     <Description Value="QRCodeGenLib4Pascal is a Delphi/FPC compatible library that provides an easy to use interface for generating QR Codes.
 "/>
     <License Value="MIT License"/>
-    <Version Major="1" Minor="8"/>
+    <Version Major="1" Minor="9"/>
     <Files Count="18">
       <Item1>
         <Filename Value="..\..\QRCodeGen\QlpBitBuffer.pas"/>
@@ -73,7 +73,7 @@
         <Type Value="Include"/>
       </Item12>
       <Item13>
-        <Filename Value="..\..\Include\QRCodeGenLibHelper.inc"/>
+        <Filename Value="..\..\Include\QRCodeGenLibFPC.inc"/>
         <Type Value="Include"/>
       </Item13>
       <Item14>

+ 8 - 25
QRCodeGenLib/src/QRCodeGen/QlpQrSegment.pas

@@ -323,13 +323,9 @@ var
   LIdx, LBottom, LTop: Int32;
   LChar: Char;
 begin
-{$IFDEF DELPHIXE3_UP}
-  LBottom := System.Low(AText);
-  LTop := System.High(AText);
-{$ELSE}
   LBottom := 1;
   LTop := System.Length(AText);
-{$ENDIF DELPHIXE3_UP}
+
   for LIdx := LBottom to LTop do
   begin
     LChar := AText[LIdx];
@@ -348,13 +344,9 @@ var
   LIdx, LBottom, LTop: Int32;
   LChar: Char;
 begin
-{$IFDEF DELPHIXE3_UP}
-  LBottom := System.Low(AText);
-  LTop := System.High(AText);
-{$ELSE}
   LBottom := 1;
   LTop := System.Length(AText);
-{$ENDIF DELPHIXE3_UP}
+
   for LIdx := LBottom to LTop do
   begin
     LChar := AText[LIdx];
@@ -376,13 +368,10 @@ begin
   LBitBuffer := TBitBuffer.Create();
   LAccumData := 0;
   LAccumCount := 0;
-{$IFDEF DELPHIXE3_UP}
-  LBottom := System.Low(AText);
-  LTop := System.High(AText);
-{$ELSE}
+
   LBottom := 1;
   LTop := System.Length(AText);
-{$ENDIF DELPHIXE3_UP}
+
   for LIdx := LBottom to LTop do
   begin
     LChar := AText[LIdx];
@@ -472,13 +461,10 @@ begin
   LBitBuffer := TBitBuffer.Create();
   LAccumData := 0;
   LAccumCount := 0;
-{$IFDEF DELPHIXE3_UP}
-  LBottom := System.Low(ADigits);
-  LTop := System.High(ADigits);
-{$ELSE}
+
   LBottom := 1;
   LTop := System.Length(ADigits);
-{$ENDIF DELPHIXE3_UP}
+
   for LIdx := LBottom to LTop do
   begin
     LChar := ADigits[LIdx];
@@ -539,13 +525,10 @@ var
 begin
   LFiller := -1;
   LMaxChar := -1;
-{$IFDEF DELPHIXE3_UP}
-  LBottom := System.Low(ALPHANUMERIC_CHARSET);
-  LTop := System.High(ALPHANUMERIC_CHARSET);
-{$ELSE}
+
   LBottom := 1;
   LTop := System.Length(ALPHANUMERIC_CHARSET);
-{$ENDIF DELPHIXE3_UP}
+
   for LIdx := LBottom to LTop do
   begin
     LMaxChar := Max(Ord(ALPHANUMERIC_CHARSET[LIdx]), LMaxChar);