Fix FindZ3.cmake to support static libraries and Windows
authorTomasz Kamiński <tomasz.kaminski@sonarsource.com>
Thu, 29 Jul 2021 08:55:24 +0000 (10:55 +0200)
committerBalazs Benics <balazs.benics@sigmatechnology.se>
Thu, 29 Jul 2021 08:55:44 +0000 (10:55 +0200)
commitf1ab60e40d16970381a003e145be6d5932823597
treec71f8e3625cb25f6a34ff5edc653f035d0bd8551
parent2df8bf9339e43de63d8d28e07182e1d6d7ffb843
Fix FindZ3.cmake to support static libraries and Windows

Use absolute path to link z3 to allow builds both on windows and linux
since the library name is platform dependent for Z3 (libz3 on Windows
and z3 on Linux) and MSVC does not recognized -L and -l options.
Fix CMAKE_CROSSCOMPILING that does not work correctly since it uses
Z3_BUILD_VERSION instead of Z3_BUILD_NUMBER
Fix building with the static version of z3 library (supersedes D80227).

 - Build the Z3 version detection code as C++, since the static
   library brings in libstdc++ symbols
 - Detect threading support and link against threading, in the
   (likely) case Z3 was built with threads

Exposed compilation error from building a program that is used to detect
z3 version in the warning message, to simplify troubleshooting.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D106131
llvm/cmake/modules/FindZ3.cmake