[CMake] Allow custom extensions for externalized debug info

Summary:
Extra flexibility for emitting debug info to external files (remains Darwin only for now).
LLDB needs this functionality to emit a LLDB.framework.dSYM instead of LLDB.dSYM when building the framework, because the latter could conflict with the driver's lldb.dSYM when emitted in the same directory on case-insensitive file systems.

Reviewers: friss, bogner, beanz

Subscribers: mgorny, aprantl, llvm-commits, #lldb

Tags: #llvm

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

llvm-svn: 358685
This commit is contained in:
Stefan Granitz 2019-04-18 16:37:07 +00:00
parent 92a7177e6b
commit ab58268fda
1 changed files with 14 additions and 7 deletions

View File

@ -1604,14 +1604,21 @@ 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(LLVM_EXTERNALIZE_DEBUGINFO_EXTENSION)
set(file_ext ${LLVM_EXTERNALIZE_DEBUGINFO_EXTENSION})
else()
set(file_ext dSYM)
endif()
set(output_name "$<TARGET_FILE_NAME:${name}>.${file_ext}")
if(LLVM_EXTERNALIZE_DEBUGINFO_OUTPUT_DIR)
set(output_path "-o=${LLVM_EXTERNALIZE_DEBUGINFO_OUTPUT_DIR}/${output_name}")
else()
set(output_path "-o=${output_name}")
endif()
if(CMAKE_CXX_FLAGS MATCHES "-flto"
OR CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE} MATCHES "-flto")