diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake --- a/llvm/cmake/modules/AddLLVM.cmake +++ b/llvm/cmake/modules/AddLLVM.cmake @@ -1980,6 +1980,8 @@ if(APPLE) if(LLVM_EXTERNALIZE_DEBUGINFO_EXTENSION) set(file_ext ${LLVM_EXTERNALIZE_DEBUGINFO_EXTENSION}) + elseif(LLVM_EXTERNALIZE_DEBUGINFO_FLATTEN) + set(file_ext dwarf) else() set(file_ext dSYM) endif() @@ -1992,6 +1994,12 @@ set(output_path "-o=${output_name}") endif() + if(LLVM_EXTERNALIZE_DEBUGINFO_FLATTEN) + set(flatten_debuginfo "--flat") + else() + set(flatten_debuginfo "") + endif() + if(CMAKE_CXX_FLAGS MATCHES "-flto" OR CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE} MATCHES "-flto") @@ -2004,7 +2012,7 @@ endif() add_custom_command(TARGET ${name} POST_BUILD WORKING_DIRECTORY ${LLVM_RUNTIME_OUTPUT_INTDIR} - COMMAND ${CMAKE_DSYMUTIL} ${output_path} $ + COMMAND ${CMAKE_DSYMUTIL} ${flatten_debuginfo} ${output_path} $ ${strip_command} ) else()