Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,10 @@ option(TEST_SUITE_PROFILE_USE
"Add apropriate -fprofile-instr-use to CFLAGS/CXXFLAGS for each benchmark"
OFF)

option(TEST_SUITE_EXTERNALIZE_DEBUGINFO
"Generate dSYM files for executables (Darwin only)"
OFF)

# When running the test-suite in diagnosis mode, use these flags passed by
# LNT to gather data, for examples -ftime-report, or -mllvm -stats. This way
# the user specified CMAKE_C_FLAGS etc. need not be changed.
Expand Down
16 changes: 16 additions & 0 deletions cmake/modules/TestSuite.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,22 @@ function(llvm_test_executable_no_test target)
set_property(GLOBAL APPEND PROPERTY TEST_SUITE_TARGETS ${target})
test_suite_add_build_dependencies(${target})

if(TEST_SUITE_EXTERNALIZE_DEBUGINFO AND APPLE)
if(CMAKE_C_FLAGS MATCHES "-flto"
OR CMAKE_CXX_FLAGS MATCHES "-flto"
OR CMAKE_C_FLAGS_RELEASE MATCHES "-flto"
OR CMAKE_CXX_FLAGS_RELEASE MATCHES "-flto")
set(lto_object ${CMAKE_CURRENT_BINARY_DIR}/${target}-lto.o)
set_property(TARGET ${target} APPEND_STRING PROPERTY
LINK_FLAGS " -Wl,-object_path_lto,${lto_object}")
endif()
if(NOT CMAKE_DSYMUTIL)
set(CMAKE_DSYMUTIL xcrun dsymutil)
endif()
add_custom_command(TARGET ${target} POST_BUILD
COMMAND ${CMAKE_DSYMUTIL} $<TARGET_FILE:${target}>)
endif()

if(TEST_SUITE_LLVM_SIZE)
add_custom_command(TARGET ${target} POST_BUILD
COMMAND ${TEST_SUITE_LLVM_SIZE} --format=sysv $<SHELL_PATH:$<TARGET_FILE:${target}>>
Expand Down