Index: compiler-rt/trunk/cmake/Modules/CompilerRTUtils.cmake =================================================================== --- compiler-rt/trunk/cmake/Modules/CompilerRTUtils.cmake +++ compiler-rt/trunk/cmake/Modules/CompilerRTUtils.cmake @@ -239,7 +239,7 @@ # Detect if we have the LLVMXRay and TestingSupport library installed and # available from llvm-config. execute_process( - COMMAND ${LLVM_CONFIG_PATH} "--ldflags" "--libs" "xray" "testingsupport" + COMMAND ${LLVM_CONFIG_PATH} "--ldflags" "--libs" "xray" RESULT_VARIABLE HAD_ERROR OUTPUT_VARIABLE CONFIG_OUTPUT) if (HAD_ERROR) @@ -254,6 +254,26 @@ set(COMPILER_RT_HAS_LLVMXRAY TRUE) endif() + set(COMPILER_RT_HAS_LLVMTESTINGSUPPORT FALSE) + execute_process( + COMMAND ${LLVM_CONFIG_PATH} "--ldflags" "--libs" "testingsupport" + RESULT_VARIABLE HAD_ERROR + OUTPUT_VARIABLE CONFIG_OUTPUT) + if (HAD_ERROR) + message(WARNING "llvm-config finding testingsupport failed with status ${HAD_ERROR}") + else() + string(REGEX REPLACE "[ \t]*[\r\n]+[ \t]*" ";" CONFIG_OUTPUT ${CONFIG_OUTPUT}) + list(GET CONFIG_OUTPUT 0 LDFLAGS) + list(GET CONFIG_OUTPUT 1 LIBLIST) + if (LIBLIST STREQUAL "") + message(WARNING "testingsupport library not installed, some tests will be skipped") + else() + set(LLVM_TESTINGSUPPORT_LDFLAGS ${LDFLAGS} CACHE STRING "Linker flags for LLVMTestingSupport library") + set(LLVM_TESTINGSUPPORT_LIBLIST ${LIBLIST} CACHE STRING "Library list for LLVMTestingSupport") + set(COMPILER_RT_HAS_LLVMTESTINGSUPPORT TRUE) + endif() + endif() + # Make use of LLVM CMake modules. # --cmakedir is supported since llvm r291218 (4.0 release) execute_process( Index: compiler-rt/trunk/lib/xray/tests/CMakeLists.txt =================================================================== --- compiler-rt/trunk/lib/xray/tests/CMakeLists.txt +++ compiler-rt/trunk/lib/xray/tests/CMakeLists.txt @@ -60,6 +60,10 @@ if (COMPILER_RT_STANDALONE_BUILD) append_list_if(COMPILER_RT_HAS_LLVMXRAY ${LLVM_XRAY_LDFLAGS} XRAY_UNITTEST_LINK_FLAGS) append_list_if(COMPILER_RT_HAS_LLVMXRAY ${LLVM_XRAY_LIBLIST} XRAY_UNITTEST_LINK_FLAGS) + append_list_if(COMPILER_RT_HAS_LLVMTESTINGSUPPORT + ${LLVM_TESTINGSUPPORT_LDFLAGS} XRAY_UNITTEST_LINK_FLAGS) + append_list_if(COMPILER_RT_HAS_LLVMTESTINGSUPPORT + ${LLVM_TESTINGSUPPORT_LIBLIST} XRAY_UNITTEST_LINK_FLAGS) else() # We add the library directories one at a time in our CFLAGS. foreach (DIR ${LLVM_LIBRARY_DIR}) Index: compiler-rt/trunk/lib/xray/tests/unit/CMakeLists.txt =================================================================== --- compiler-rt/trunk/lib/xray/tests/unit/CMakeLists.txt +++ compiler-rt/trunk/lib/xray/tests/unit/CMakeLists.txt @@ -1,10 +1,16 @@ -add_xray_unittest(XRayTest SOURCES +set(TEST_SOURCES allocator_test.cc buffer_queue_test.cc - fdr_controller_test.cc - fdr_log_writer_test.cc function_call_trie_test.cc profile_collector_test.cc segmented_array_test.cc test_helpers.cc xray_unit_test_main.cc) + +if (NOT COMPILER_RT_STANDALONE_BUILD OR COMPILER_RT_HAS_LLVMTESTINGSUPPORT) + list(APPEND TEST_SOURCES + fdr_controller_test.cc + fdr_log_writer_test.cc) +endif() + +add_xray_unittest(XRayTest SOURCES ${TEST_SOURCES})