Skip to content

Commit 7304dd5

Browse files
[CMake] Add LLVM_EXTERNALIZE_DEBUGINFO_OUTPUT_DIR for custom dSYM target directory on Darwin
Summary: When using `LLVM_EXTERNALIZE_DEBUGINFO` in LLDB, the default dSYM location for the shared library in LLDB.framework is inside the framework bundle. With `LLVM_EXTERNALIZE_DEBUGINFO_OUTPUT_DIR` we can easily fix that. I consider it a useful feature to be able to set a global output directory for external debug info (rather then having a target-specific one). Only implemented for Darwin so far. Reviewers: beanz, aprantl Reviewed By: aprantl Subscribers: mgorny, aprantl, #lldb, lldb-commits, llvm-commits Differential Revision: https://reviews.llvm.org/D55114 llvm-svn: 348118
1 parent 96f3e7f commit 7304dd5

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

llvm/cmake/modules/AddLLVM.cmake

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1597,6 +1597,13 @@ function(llvm_externalize_debuginfo name)
15971597
endif()
15981598
endif()
15991599

1600+
if(LLVM_EXTERNALIZE_DEBUGINFO_OUTPUT_DIR)
1601+
if(APPLE)
1602+
set(output_name "$<TARGET_FILE_NAME:${name}>.dSYM")
1603+
set(output_path "-o=${LLVM_EXTERNALIZE_DEBUGINFO_OUTPUT_DIR}/${output_name}")
1604+
endif()
1605+
endif()
1606+
16001607
if(APPLE)
16011608
if(CMAKE_CXX_FLAGS MATCHES "-flto"
16021609
OR CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE} MATCHES "-flto")
@@ -1609,7 +1616,7 @@ function(llvm_externalize_debuginfo name)
16091616
set(CMAKE_DSYMUTIL xcrun dsymutil)
16101617
endif()
16111618
add_custom_command(TARGET ${name} POST_BUILD
1612-
COMMAND ${CMAKE_DSYMUTIL} $<TARGET_FILE:${name}>
1619+
COMMAND ${CMAKE_DSYMUTIL} ${output_path} $<TARGET_FILE:${name}>
16131620
${strip_command}
16141621
)
16151622
else()

0 commit comments

Comments
 (0)