forked from OSchip/llvm-project
[sanitizers] Sanitizer tests CMake clean up
This patch addresses two issues: Most of the time, hacks with `if/else` in order to get support for multi-configuration builds are superfluous. The variable `CMAKE_CFG_INTDIR` was created precisely for this purpose: it expands to `.` on all single-configuration builds, and to a configuration name otherwise. The `if/else` hacks for the library name generation should also not be done, as CMake has `TARGET_FILE` generator expression precisely for this purpose, as it expands to the exact filename of the resulting target. Differential Revision: https://reviews.llvm.org/D35952 llvm-svn: 309306
This commit is contained in:
parent
82c7d3768d
commit
165a1edc85
|
@ -301,10 +301,7 @@ macro(add_compiler_rt_test test_suite test_name)
|
|||
if(TEST_SUBDIR)
|
||||
set(output_bin "${output_bin}/${TEST_SUBDIR}")
|
||||
endif()
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
set(output_bin "${output_bin}/${CMAKE_CFG_INTDIR}")
|
||||
endif()
|
||||
set(output_bin "${output_bin}/${test_name}")
|
||||
set(output_bin "${output_bin}/${CMAKE_CFG_INTDIR}/${test_name}")
|
||||
if(MSVC)
|
||||
set(output_bin "${output_bin}.exe")
|
||||
endif()
|
||||
|
|
|
@ -129,11 +129,7 @@ append_list_if(ANDROID atomic ASAN_UNITTEST_NOINST_LIBS)
|
|||
# options in ${ARGN}, and add it to the object list.
|
||||
macro(asan_compile obj_list source arch kind)
|
||||
get_filename_component(basename ${source} NAME)
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
set(output_obj "${CMAKE_CFG_INTDIR}/${obj_list}.${basename}.${arch}${kind}.o")
|
||||
else()
|
||||
set(output_obj "${obj_list}.${basename}.${arch}${kind}.o")
|
||||
endif()
|
||||
set(output_obj "${CMAKE_CFG_INTDIR}/${obj_list}.${basename}.${arch}${kind}.o")
|
||||
get_target_flags_for_arch(${arch} TARGET_CFLAGS)
|
||||
set(COMPILE_DEPS ${ASAN_UNITTEST_HEADERS} ${ASAN_BLACKLIST_FILE})
|
||||
if(NOT COMPILER_RT_STANDALONE_BUILD)
|
||||
|
@ -156,17 +152,7 @@ macro(add_asan_test test_suite test_name arch kind)
|
|||
endif()
|
||||
if(TEST_WITH_TEST_RUNTIME)
|
||||
list(APPEND TEST_DEPS ${ASAN_TEST_RUNTIME})
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
set(configuration_path "${CMAKE_CFG_INTDIR}/")
|
||||
else()
|
||||
set(configuration_path "")
|
||||
endif()
|
||||
if(NOT MSVC)
|
||||
set(asan_test_runtime_path ${configuration_path}lib${ASAN_TEST_RUNTIME}.a)
|
||||
else()
|
||||
set(asan_test_runtime_path ${configuration_path}${ASAN_TEST_RUNTIME}.lib)
|
||||
endif()
|
||||
list(APPEND TEST_OBJECTS ${asan_test_runtime_path})
|
||||
list(APPEND TEST_OBJECTS $<TARGET_FILE:${ASAN_TEST_RUNTIME}>)
|
||||
endif()
|
||||
add_compiler_rt_test(${test_suite} ${test_name}
|
||||
SUBDIR ${TEST_SUBDIR}
|
||||
|
@ -245,13 +231,7 @@ macro(add_asan_tests_for_arch_and_kind arch kind)
|
|||
endif()
|
||||
|
||||
# Create the 'default' folder where ASAN tests are produced.
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
foreach(build_mode ${CMAKE_CONFIGURATION_TYPES})
|
||||
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/default/${build_mode}")
|
||||
endforeach()
|
||||
else()
|
||||
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/default")
|
||||
endif()
|
||||
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/default/${CMAKE_CFG_INTDIR}")
|
||||
|
||||
add_asan_test(AsanUnitTests "Asan-${arch}${kind}-Test"
|
||||
${arch} ${kind} SUBDIR "default"
|
||||
|
@ -259,13 +239,7 @@ macro(add_asan_tests_for_arch_and_kind arch kind)
|
|||
LINK_FLAGS ${ASAN_UNITTEST_INSTRUMENTED_LINK_FLAGS})
|
||||
if(COMPILER_RT_ASAN_HAS_STATIC_RUNTIME)
|
||||
# Create the 'dynamic' folder where ASAN tests are produced.
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
foreach(build_mode ${CMAKE_CONFIGURATION_TYPES})
|
||||
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/dynamic/${build_mode}")
|
||||
endforeach()
|
||||
else()
|
||||
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/dynamic")
|
||||
endif()
|
||||
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/dynamic/${CMAKE_CFG_INTDIR}")
|
||||
|
||||
add_asan_test(AsanDynamicUnitTests "Asan-${arch}${kind}-Dynamic-Test"
|
||||
${arch} ${kind} SUBDIR "dynamic"
|
||||
|
|
|
@ -74,16 +74,7 @@ function(get_interception_lib_for_arch arch lib lib_name)
|
|||
set(tgt_name "RTInterception.test.${arch}")
|
||||
endif()
|
||||
set(${lib} "${tgt_name}" PARENT_SCOPE)
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
set(configuration_path "${CMAKE_CFG_INTDIR}/")
|
||||
else()
|
||||
set(configuration_path "")
|
||||
endif()
|
||||
if(NOT MSVC)
|
||||
set(${lib_name} "${configuration_path}lib${tgt_name}.a" PARENT_SCOPE)
|
||||
else()
|
||||
set(${lib_name} "${configuration_path}${tgt_name}.lib" PARENT_SCOPE)
|
||||
endif()
|
||||
set(${lib_name} $<TARGET_FILE:${tgt_name}> PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
# Interception unit tests testsuite.
|
||||
|
@ -103,11 +94,7 @@ macro(add_interception_tests_for_arch arch)
|
|||
set(INTERCEPTION_TEST_OBJECTS)
|
||||
foreach(source ${INTERCEPTION_TEST_SOURCES})
|
||||
get_filename_component(basename ${source} NAME)
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
set(output_obj "${CMAKE_CFG_INTDIR}/${basename}.${arch}.o")
|
||||
else()
|
||||
set(output_obj "${basename}.${arch}.o")
|
||||
endif()
|
||||
set(output_obj "${CMAKE_CFG_INTDIR}/${basename}.${arch}.o")
|
||||
clang_compile(${output_obj} ${source}
|
||||
CFLAGS ${INTERCEPTION_TEST_CFLAGS_COMMON} ${TARGET_FLAGS}
|
||||
DEPS ${INTERCEPTION_TEST_COMPILE_DEPS})
|
||||
|
|
|
@ -127,16 +127,7 @@ function(get_sanitizer_common_lib_for_arch arch lib lib_name)
|
|||
set(tgt_name "RTSanitizerCommon.test.${arch}")
|
||||
endif()
|
||||
set(${lib} "${tgt_name}" PARENT_SCOPE)
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
set(configuration_path "${CMAKE_CFG_INTDIR}/")
|
||||
else()
|
||||
set(configuration_path "")
|
||||
endif()
|
||||
if(NOT MSVC)
|
||||
set(${lib_name} "${configuration_path}lib${tgt_name}.a" PARENT_SCOPE)
|
||||
else()
|
||||
set(${lib_name} "${configuration_path}${tgt_name}.lib" PARENT_SCOPE)
|
||||
endif()
|
||||
set(${lib_name} $<TARGET_FILE:${tgt_name}> PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
# Sanitizer_common unit tests testsuite.
|
||||
|
@ -164,11 +155,7 @@ macro(add_sanitizer_tests_for_arch arch)
|
|||
set(SANITIZER_TEST_OBJECTS)
|
||||
foreach(source ${SANITIZER_TEST_SOURCES})
|
||||
get_filename_component(basename ${source} NAME)
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
set(output_obj "${CMAKE_CFG_INTDIR}/${basename}.${arch}.o")
|
||||
else()
|
||||
set(output_obj "${basename}.${arch}.o")
|
||||
endif()
|
||||
set(output_obj "${CMAKE_CFG_INTDIR}/${basename}.${arch}.o")
|
||||
clang_compile(${output_obj} ${source}
|
||||
CFLAGS ${SANITIZER_TEST_CFLAGS_COMMON} ${TARGET_FLAGS}
|
||||
DEPS ${SANITIZER_TEST_COMPILE_DEPS})
|
||||
|
|
Loading…
Reference in New Issue