[compiler-rt] r310944 - [compiler-rt CMake] NFC: Minor CMake refactoring.

George Karpenkov via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 15 11:35:02 PDT 2017


Author: george.karpenkov
Date: Tue Aug 15 11:35:02 2017
New Revision: 310944

URL: http://llvm.org/viewvc/llvm-project?rev=310944&view=rev
Log:
[compiler-rt CMake] NFC: Minor CMake refactoring.

Change macro to a function, and use a generic variable instead of
branching for handling multi-output build with
CMAKE_CONFIGURATION_TYPES.

Differential Revision: https://reviews.llvm.org/D36725

Modified:
    compiler-rt/trunk/cmake/Modules/CompilerRTCompile.cmake

Modified: compiler-rt/trunk/cmake/Modules/CompilerRTCompile.cmake
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/cmake/Modules/CompilerRTCompile.cmake?rev=310944&r1=310943&r2=310944&view=diff
==============================================================================
--- compiler-rt/trunk/cmake/Modules/CompilerRTCompile.cmake (original)
+++ compiler-rt/trunk/cmake/Modules/CompilerRTCompile.cmake Tue Aug 15 11:35:02 2017
@@ -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 so
                 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.




More information about the llvm-commits mailing list