43 lines · plain
1include(CompilerRTCompile)2 3set(NSAN_UNITTEST_CFLAGS4 ${COMPILER_RT_UNITTEST_CFLAGS}5 ${COMPILER_RT_GTEST_CFLAGS}6 ${SANITIZER_TEST_CXX_CFLAGS}7 -I${COMPILER_RT_SOURCE_DIR}/include8 -I${COMPILER_RT_SOURCE_DIR}/lib9 -DSANITIZER_COMMON_REDEFINE_BUILTINS_IN_STD10 -O211 -g12 -fno-omit-frame-pointer)13 14set(NSAN_UNITTEST_LINK_FLAGS15 ${COMPILER_RT_UNITTEST_LINK_FLAGS}16 ${COMPILER_RT_UNWINDER_LINK_LIBS}17 ${SANITIZER_TEST_CXX_LIBRARIES})18set(NSAN_UNITTEST_INSTRUMENTED_LINK_FLAGS ${NSAN_UNITTEST_LINK_FLAGS})19list(APPEND NSAN_UNITTEST_INSTRUMENTED_LINK_FLAGS -fsanitize=numerical)20 21file(GLOB NSAN_HEADERS ../*.h)22set(NSAN_UNITTESTS23 NSanUnitTest.cpp24 nsan_unit_test_main.cpp)25 26add_custom_target(NsanUnitTests)27 28if(COMPILER_RT_DEFAULT_TARGET_ARCH IN_LIST NSAN_SUPPORTED_ARCH)29 # NSan unit tests are only run on the host machine.30 set(arch ${COMPILER_RT_DEFAULT_TARGET_ARCH})31 32 set(NsanTestObjects)33 generate_compiler_rt_tests(NsanTestObjects34 NsanUnitTests "Nsan-${arch}-Test" ${arch}35 SOURCES ${NSAN_UNITTESTS} ${COMPILER_RT_GTEST_SOURCE}36 DEPS ${NSAN_UNIT_TEST_HEADERS}37 CFLAGS ${NSAN_UNITTEST_CFLAGS}38 LINK_FLAGS ${NSAN_UNITTEST_INSTRUMENTED_LINK_FLAGS})39 set_target_properties(NsanUnitTests PROPERTIES40 RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})41endif()42 43