| if(LIBC_TESTS_CAN_USE_MPFR OR LIBC_TESTS_CAN_USE_MPC) |
| add_library(libcMPCommon STATIC |
| MPCommon.cpp |
| MPCommon.h |
| mpfr_inc.h |
| ) |
| _get_common_test_compile_options(compile_options "" "") |
| # mpfr/gmp headers do not work with -ffreestanding flag. |
| list(REMOVE_ITEM compile_options "-ffreestanding") |
| target_compile_options(libcMPCommon PRIVATE -O3 ${compile_options}) |
| add_dependencies( |
| libcMPCommon |
| libc.src.__support.CPP.string |
| libc.src.__support.CPP.string_view |
| libc.src.__support.CPP.type_traits |
| libc.src.__support.FPUtil.cast |
| libc.src.__support.FPUtil.fp_bits |
| ) |
| if(EXISTS ${LLVM_LIBC_MPFR_INSTALL_PATH}) |
| target_include_directories(libcMPCommon PUBLIC ${LLVM_LIBC_MPFR_INSTALL_PATH}/include) |
| target_link_directories(libcMPCommon PUBLIC ${LLVM_LIBC_MPFR_INSTALL_PATH}/lib) |
| endif() |
| target_include_directories(libcMPCommon PUBLIC ${LIBC_SOURCE_DIR}) |
| target_link_libraries(libcMPCommon PUBLIC LibcFPTestHelpers.unit mpfr gmp) |
| elseif(NOT LIBC_TARGET_OS_IS_GPU AND NOT LLVM_LIBC_FULL_BUILD) |
| message(WARNING "Math tests using MPFR will be skipped.") |
| endif() |
| |
| if(LIBC_TESTS_CAN_USE_MPFR) |
| add_library(libcMPFRWrapper STATIC |
| MPFRUtils.cpp |
| MPFRUtils.h |
| ) |
| _get_common_test_compile_options(compile_options "" "") |
| # mpfr/gmp headers do not work with -ffreestanding flag. |
| list(REMOVE_ITEM compile_options "-ffreestanding") |
| target_compile_options(libcMPFRWrapper PRIVATE -O3 ${compile_options}) |
| add_dependencies( |
| libcMPFRWrapper |
| libcMPCommon |
| libc.src.__support.CPP.array |
| libc.src.__support.CPP.stringstream |
| libc.src.__support.FPUtil.fp_bits |
| libc.src.__support.FPUtil.fpbits_str |
| LibcTest.unit |
| ) |
| if(EXISTS ${LLVM_LIBC_MPFR_INSTALL_PATH}) |
| target_include_directories(libcMPFRWrapper PUBLIC ${LLVM_LIBC_MPFR_INSTALL_PATH}/include) |
| target_link_directories(libcMPFRWrapper PUBLIC ${LLVM_LIBC_MPFR_INSTALL_PATH}/lib) |
| endif() |
| target_include_directories(libcMPFRWrapper PUBLIC ${LIBC_SOURCE_DIR}) |
| target_link_libraries(libcMPFRWrapper PUBLIC libcMPCommon LibcFPTestHelpers.unit LibcTest.unit) |
| elseif(NOT LIBC_TARGET_OS_IS_GPU AND NOT LLVM_LIBC_FULL_BUILD) |
| message(WARNING "Math tests using MPFR will be skipped.") |
| endif() |