--- a/cmake/modules/FindQuadMath.cmake 2020-03-24 07:54:22.548925006 +0100 +++ b/cmake/modules/FindQuadMath.cmake.patched 2020-03-24 22:53:43.127262894 +0100 @@ -0,0 +1,59 @@ +# .. cmake_module:: +# +# Find the GCC Quad-Precision library +# +# Sets the following variables: +# +# :code:`QUADMATH_FOUND` +# True if the Quad-Precision library was found. +# +# + + +# search for the header quadmath.h +include(CheckIncludeFile) +check_include_file(quadmath.h QUADMATH_HEADER) + +include(CheckCSourceCompiles) +include(CMakePushCheckState) + +cmake_push_check_state() # Save variables +set(CMAKE_REQUIRED_LIBRARIES quadmath) +check_c_source_compiles(" +#include + +int main () +{ + __float128 r = 1.0q; + r = strtoflt128(\"1.2345678\", NULL); + return 0; +}" QUADMATH_COMPILES) +cmake_pop_check_state() + + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args( + "QuadMath" + DEFAULT_MSG + QUADMATH_HEADER + QUADMATH_COMPILES +) + +# text for feature summary +set_package_properties("QuadMath" PROPERTIES + DESCRIPTION "GCC Quad-Precision library") + +# set HAVE_QUADMATH for config.h +set(HAVE_QUADMATH ${QUADMATH_FOUND}) + +# -fext-numeric-literals is a GCC extension not available in other compilers like clang +if(${CMAKE_CXX_COMPILER_ID} STREQUAL GNU) + set(_QUADMATH_EXT_NUMERIC_LITERALS "-fext-numeric-literals") +endif() + +# register all QuadMath related flags +if(HAVE_QUADMATH) + dune_register_package_flags(COMPILE_DEFINITIONS "ENABLE_QUADMATH=1" "_GLIBCXX_USE_FLOAT128=1" + COMPILE_OPTIONS ${_QUADMATH_EXT_NUMERIC_LITERALS} + LIBRARIES "quadmath") +endif()