diff options
Diffstat (limited to 'lldb/cmake/modules/AddLLDB.cmake')
-rw-r--r-- | lldb/cmake/modules/AddLLDB.cmake | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/lldb/cmake/modules/AddLLDB.cmake b/lldb/cmake/modules/AddLLDB.cmake index bdd6f73..5d58abf 100644 --- a/lldb/cmake/modules/AddLLDB.cmake +++ b/lldb/cmake/modules/AddLLDB.cmake @@ -170,7 +170,19 @@ function(add_lldb_executable name) if(WIN32) list(FIND ARG_LINK_LIBS liblldb LIBLLDB_INDEX) if(NOT LIBLLDB_INDEX EQUAL -1) - target_link_options(${name} PRIVATE "/DELAYLOAD:$<TARGET_FILE_BASE_NAME:liblldb>.dll") + if (MSVC) + target_link_options(${name} PRIVATE "/DELAYLOAD:$<TARGET_FILE_NAME:liblldb>") + elseif (MINGW AND LINKER_IS_LLD) + # LLD can delay load just by passing a --delayload flag, as long as the import + # library is a short type import library (which LLD and MS link.exe produce). + # With ld.bfd, with long import libraries (as produced by GNU binutils), one + # has to generate a separate delayload import library with dlltool. + target_link_options(${name} PRIVATE "-Wl,--delayload=$<TARGET_FILE_NAME:liblldb>") + elseif (DEFINED LLDB_PYTHON_DLL_RELATIVE_PATH) + # If liblldb can't be delayloaded, then LLDB_PYTHON_DLL_RELATIVE_PATH will not + # have any effect. + message(WARNING "liblldb is not delay loaded, LLDB_PYTHON_DLL_RELATIVE_PATH has no effect") + endif() endif() endif() if(CLANG_LINK_CLANG_DYLIB) |