mariuz / flamerobin

FlameRobin is a database administration tool for Firebird RDBMS. Our goal is to build a tool that is: lightweight (small footprint, fast execution) cross-platform (Linux, Windows, Mac OS X, FreeBSD) dependent only on other Open Source software
http://flamerobin.org
MIT License
211 stars 64 forks source link

Int128 fixes on 32-bit arm and other non-mainstream architectures #279

Closed real-dam closed 1 year ago

real-dam commented 1 year ago

Currently the availability of __int128 and std::decimal::decimalXXX is determined via checkd for compiler type. GCC is assumed to have them, and MSVC is assumed to miss them. However, gcc misses them on 32-bit arm, mips and other more "exotic" architectures.

The proposed solution tests the availability of __int128 and std::decimal::decimal128 via CMakeFiles.txt and adds -D defined to the compiler command line of they are available. Further, the code that uses them is made conditional on these defines, instead of on compiler type.

The result builds on all Debian architectures where wx3.2 is available (14 architectures): https://buildd.debian.org/status/package.php?p=flamerobin