summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Granitz <stefan.graenitz@gmail.com>2018-12-03 10:42:32 +0000
committerStefan Granitz <stefan.graenitz@gmail.com>2018-12-03 10:42:32 +0000
commit7304dd58cafe70402a8dce41f0ca52f13d20fb40 (patch)
tree2499724ccf3de890401a6bae8028043064ccc8d0
parent96f3e7f22121764f4cc5490448bec72471fe50b4 (diff)
downloadbcm5719-llvm-7304dd58cafe70402a8dce41f0ca52f13d20fb40.tar.gz
bcm5719-llvm-7304dd58cafe70402a8dce41f0ca52f13d20fb40.zip
[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
-rw-r--r--llvm/cmake/modules/AddLLVM.cmake9
1 files changed, 8 insertions, 1 deletions
diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
index 02ce5479c10..3e2f4f98a97 100644
--- a/llvm/cmake/modules/AddLLVM.cmake
+++ b/llvm/cmake/modules/AddLLVM.cmake
@@ -1597,6 +1597,13 @@ function(llvm_externalize_debuginfo name)
endif()
endif()
+ if(LLVM_EXTERNALIZE_DEBUGINFO_OUTPUT_DIR)
+ if(APPLE)
+ set(output_name "$<TARGET_FILE_NAME:${name}>.dSYM")
+ set(output_path "-o=${LLVM_EXTERNALIZE_DEBUGINFO_OUTPUT_DIR}/${output_name}")
+ endif()
+ endif()
+
if(APPLE)
if(CMAKE_CXX_FLAGS MATCHES "-flto"
OR CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE} MATCHES "-flto")
@@ -1609,7 +1616,7 @@ function(llvm_externalize_debuginfo name)
set(CMAKE_DSYMUTIL xcrun dsymutil)
endif()
add_custom_command(TARGET ${name} POST_BUILD
- COMMAND ${CMAKE_DSYMUTIL} $<TARGET_FILE:${name}>
+ COMMAND ${CMAKE_DSYMUTIL} ${output_path} $<TARGET_FILE:${name}>
${strip_command}
)
else()
OpenPOWER on IntegriCloud