cmlib/CMLibHighPrecisionMath.cmake

41 lines
851 B
CMake
Raw Normal View History

function(enable_high_precision_math)
set(options QUAD MPFR)
set(oneValueArgs)
set(multiValueArgs)
cmake_parse_arguments(_PKG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
if(MPFR AND QUAD)
message(FATAL_ERROR "Mutually exclusive options QUAD and MPFR")
endif()
if(MPFR)
find_package(MPFR)
if(MPFR_FOUND)
find_package(MPFRCppThirdparty)
endif()
return()
endif()
if(QUAD)
find_package(Quadmath)
if(QUADMATH_FOUND)
add_definitions(-DHAVE_QUADMATH=1)
endif()
return()
endif()
# Default
find_package(Quadmath)
if(QUADMATH_FOUND)
add_definitions(-DHAVE_QUADMATH=1)
else()
find_package(MPFR)
if(MPFR_FOUND)
find_package(MPFRCppThirdparty)
else()
message(FATAL_ERROR "Nor Quadmath, nor MPFR found.")
endif()
endif()
endfunction()