pavkam / tzdb

Delphi/FPC Time Zone Database
https://www.iana.org/time-zones
BSD 3-Clause "New" or "Revised" License
83 stars 28 forks source link

C++Builder error compiling - constant expression expected - TZDB requires at least Delphi XE to compile! #37

Open jaridmo opened 3 years ago

jaridmo commented 3 years ago

I am using RadStudio 10.3.3 (C++ Builder) to compile TZDB.pas and use, but I get an error on the following:

40 {$IF DECLARED(CompilerVersion)} 41 {$IF CompilerVersion >= 22} // Delphi XE + 42 {$DEFINE TZDB_SUPPORTED_COMPILER} 43 {$DEFINE DELPHI} 44 {$IFEND} 45 {$ENDIF}

The errors: [Pascal Error] TZDB.pas(41,32): E2026 Constant Expression expected [Pascal Error] TZDB.pas(50,4): E1054 TZDB requires at least Delphi XE or FreePascal 3.0 to compile! [Pascal Error] TZDB.pas(69,5): F2613 Unit 'FGL' not found.

I don't know if this is a problem in RadStudio 10.3.3 or if it is a problem with the C++ Builder side, but I can simply comment out the lines of code 40,41,44,45 and compile no problem. But I don't like doing this because whenever I update the source it will be a problem.

Any ideas?

pavkam commented 2 years ago

Hi @jaridmo -- it is outside my scope to deal with C++Builder. But if you provide a working patch I will gladly accept it.

DieFinsternis commented 5 months ago

For more information: I ran into the same issue today using Delphi 11. image

I was able to resolve this simply by moving the unit name before the compiler directives.