summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake')
-rw-r--r--cmake/Modules/CompilerRTCompile.cmake15
1 files changed, 6 insertions, 9 deletions
diff --git a/cmake/Modules/CompilerRTCompile.cmake b/cmake/Modules/CompilerRTCompile.cmake
index b39ca4ef8..8727f5bb3 100644
--- a/cmake/Modules/CompilerRTCompile.cmake
+++ b/cmake/Modules/CompilerRTCompile.cmake
@@ -27,7 +27,7 @@ endfunction()
# Compile a sanitizer test with a freshly built clang
# for a given architecture, adding the result to the object list.
# - obj_list: output list of objects, populated by path
-# of the generated object file.
+# of a generated object file.
# - source: source file of a test.
# - arch: architecture to compile for.
# sanitizer_test_compile(<obj_list> <source> <arch>
@@ -36,16 +36,12 @@ endfunction()
# DEPS <list of dependencies>
# CFLAGS <list of flags>
# )
-macro(sanitizer_test_compile obj_list source arch)
+function(sanitizer_test_compile obj_list source arch)
cmake_parse_arguments(TEST
"" "" "KIND;COMPILE_DEPS;DEPS;CFLAGS" ${ARGN})
get_filename_component(basename ${source} NAME)
- if(CMAKE_CONFIGURATION_TYPES)
- set(output_obj
- "${CMAKE_CFG_INTDIR}/${obj_list}.${basename}.${arch}${TEST_KIND}.o")
- else()
- set(output_obj "${obj_list}.${basename}.${arch}${TEST_KIND}.o")
- endif()
+ set(output_obj
+ "${CMAKE_CFG_RESOLVED_INTDIR}${obj_list}.${basename}.${arch}${TEST_KIND}.o")
# Write out architecture-specific flags into TARGET_CFLAGS variable.
get_target_flags_for_arch(${arch} TARGET_CFLAGS)
@@ -57,7 +53,8 @@ macro(sanitizer_test_compile obj_list source arch)
CFLAGS ${TEST_CFLAGS} ${TARGET_CFLAGS}
DEPS ${TEST_COMPILE_DEPS})
list(APPEND ${obj_list} ${output_obj})
-endmacro()
+ set("${obj_list}" "${${obj_list}}" PARENT_SCOPE)
+endfunction()
# Compile a source into an object file with COMPILER_RT_TEST_COMPILER using
# a provided compile flags and dependenices.