[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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358685 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
index 41e2635..4287489 100644
--- a/cmake/modules/AddLLVM.cmake
+++ b/cmake/modules/AddLLVM.cmake
@@ -1604,14 +1604,21 @@
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")