Compare commits

...

2 Commits

3 changed files with 45 additions and 4 deletions

View File

@@ -30,6 +30,7 @@ include(CMLibLSBInfo)
include(CMLibCompiler)
include(CMLibCompilerFlags)
include(CMLibDistCC)
include(CMLibHighPrecisionMath)
include(CMLibGenerateCompilerFeaturesHPP)
include(CMLibFlagRemove)
include(CMLibCotire)

View File

@@ -4,15 +4,15 @@ function(add_common_library target)
set(oneValueArgs OUTPUT_NAME)
set(multiValueArgs SOURCES)
cmake_parse_arguments(_LOCAL "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
cmake_parse_arguments(_PREFIX "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
if(_LOCAL_OUTPUT_NAME)
set(output_name ${_LOCAL_OUTPUT_NAME})
if(_PREFIX_OUTPUT_NAME)
set(output_name ${_PREFIX_OUTPUT_NAME})
else()
set(output_name ${target})
endif()
add_library(${target} OBJECT ${_LOCAL_SOURCES})
add_library(${target} OBJECT ${_PREFIX_SOURCES})
target_include_directories(
${target} PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include> $<INSTALL_INTERFACE:include/${target}>)

View File

@@ -0,0 +1,40 @@
function(enable_high_precision_math)
set(options QUAD MPFR)
set(oneValueArgs)
set(multiValueArgs)
cmake_parse_arguments(_PREFIX "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
if(_PREFIX_MPFR AND _PREFIX_QUAD)
message(FATAL_ERROR "Mutually exclusive options QUAD and MPFR")
endif()
if(_PREFIX_MPFR)
find_package(MPFR)
if(MPFR_FOUND)
find_package(MPFRCppThirdparty)
endif()
return()
endif()
if(_PREFIX_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()