diff --git a/libc/test/UnitTest/CMakeLists.txt b/libc/test/UnitTest/CMakeLists.txt --- a/libc/test/UnitTest/CMakeLists.txt +++ b/libc/test/UnitTest/CMakeLists.txt @@ -71,8 +71,6 @@ add_library( LibcFPTestHelpers - FPExceptMatcher.cpp - FPExceptMatcher.h FPMatcher.h RoundingModeUtils.cpp RoundingModeUtils.h @@ -85,6 +83,17 @@ libc.src.__support.FPUtil.fenv_impl libc.test.UnitTest.string_utils ) +add_library( + LibcFPExceptionHelpers + FPExceptMatcher.cpp + FPExceptMatcher.h +) +add_dependencies( + LibcFPExceptionHelpers + LibcUnitTest + libc.src.__support.FPUtil.fp_bits + libc.src.__support.FPUtil.fenv_impl +) add_library( LibcMemoryHelpers @@ -123,7 +132,8 @@ libc.test.UnitTest.string_utils ) -foreach(lib LibcFPTestHelpers LibcMemoryHelpers LibcPrintfHelpers LibcScanfHelpers) +foreach(lib LibcFPTestHelpers LibcFPExceptionHelpers LibcMemoryHelpers + LibcPrintfHelpers LibcScanfHelpers) target_include_directories(${lib} PUBLIC ${LIBC_SOURCE_DIR}) target_compile_options(${lib} PRIVATE -fno-exceptions -fno-rtti) target_link_libraries(${lib} LibcUnitTest) diff --git a/libc/test/src/CMakeLists.txt b/libc/test/src/CMakeLists.txt --- a/libc/test/src/CMakeLists.txt +++ b/libc/test/src/CMakeLists.txt @@ -24,7 +24,11 @@ set(test_type UNIT_TEST_ONLY) list(APPEND MATH_UNITTEST_LINK_LIBRARIES libcMPFRWrapper libc_math_test_utils -lmpfr -lgmp) endif() - list(APPEND MATH_UNITTEST_LINK_LIBRARIES LibcFPTestHelpers) + if(MATH_UNITTEST_HERMETIC_TEST_ONLY) + list(APPEND MATH_UNITTEST_LINK_LIBRARIES LibcFPTestHelpers) + else() + list(APPEND MATH_UNITTEST_LINK_LIBRARIES LibcFPTestHelpers LibcFPExceptionHelpers) + endif() add_libc_unittest( ${name}