Two fixes in one:
Firstly, replace non-standard __uint64_t with standard (but optional) uint64_t.
__uint64_t is not a part of C standard; it is defined by some platforms but might not
be present in every environment (e.g. in freestanding build). On the other hand, uint64_t
is standard C. It is optional but virtual guaranteed to be present for any 32/64 bit machine.
Secondly, mark riscv64 for 128-bit long double in make/cmake files. This fixes cmake
build (which detects presence of long double and tries to compile extended functions),
and brings make build to do the same.
Co-authored-by: Viral B. Shah <ViralBShah@users.noreply.github.com>
* Add BUILD_SHARED_LIBS option to choose between shared and static lib
* Fix build break for Android aarch64
* Install built target
* Set the correct version number
* Don't add include dirs through CFlags. Include dirs are already set as target property
* Install all relevant headers, not just from include dir
* Update note about BUILD_SHARED_LIBS in README.md
* Fix mistake in README.md, option(BUILD_SHARED_LIBS ON) sets the lib to shared by default
* Fix mistake in CMakeLists.txt, only add sources in ld128 if long double isn't the same as double + aarch64
* Update README to mention that cmake build now defaults to shared library
* Add support to build openlibm as a shared library using cmake by not compiling the C implementation when a native one exists
* Add CMake static and shared library build instruction and also added info about support for loongarch64
---------
Co-authored-by: Viral B. Shah <ViralBShah@users.noreply.github.com>
* Add CMakeLists file to build with CMake, tested with MinGW on Windows x64 and Apple Clang on MacOS arm64
* Use regex to ensure 'AppleClang' also passes under Clang