Index: cmake/Modules/CompilerRTCompile.cmake =================================================================== --- cmake/Modules/CompilerRTCompile.cmake +++ cmake/Modules/CompilerRTCompile.cmake @@ -27,7 +27,7 @@ # 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( @@ -36,16 +36,12 @@ # DEPS # CFLAGS # ) -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 @@ 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.