diff options
Diffstat (limited to 'cmake/modules/AddLLDB.cmake')
| -rw-r--r-- | cmake/modules/AddLLDB.cmake | 58 |
1 files changed, 20 insertions, 38 deletions
diff --git a/cmake/modules/AddLLDB.cmake b/cmake/modules/AddLLDB.cmake index 47ee25da52b2..4c6f1efd673d 100644 --- a/cmake/modules/AddLLDB.cmake +++ b/cmake/modules/AddLLDB.cmake @@ -1,31 +1,17 @@ -function(lldb_link_common_libs name targetkind) - if (NOT LLDB_USED_LIBS) - return() - endif() - - if(${targetkind} MATCHES "SHARED") - set(LINK_KEYWORD PRIVATE) - endif() - - if(${targetkind} MATCHES "SHARED" OR ${targetkind} MATCHES "EXE") - if (LLDB_LINKER_SUPPORTS_GROUPS) - target_link_libraries(${name} ${LINK_KEYWORD} - -Wl,--start-group ${LLDB_USED_LIBS} -Wl,--end-group) - else() - target_link_libraries(${name} ${LINK_KEYWORD} ${LLDB_USED_LIBS}) - endif() - endif() -endfunction(lldb_link_common_libs) - function(add_lldb_library name) # only supported parameters to this macro are the optional # MODULE;SHARED;STATIC library type and source files cmake_parse_arguments(PARAM - "MODULE;SHARED;STATIC;OBJECT" + "MODULE;SHARED;STATIC;OBJECT;PLUGIN" "" - "DEPENDS" + "DEPENDS;LINK_LIBS;LINK_COMPONENTS" ${ARGN}) llvm_process_sources(srcs ${PARAM_UNPARSED_ARGUMENTS}) + list(APPEND LLVM_LINK_COMPONENTS ${PARAM_LINK_COMPONENTS}) + + if(PARAM_PLUGIN) + set_property(GLOBAL APPEND PROPERTY LLDB_PLUGINS ${name}) + endif() if (MSVC_IDE OR XCODE) string(REGEX MATCHALL "/[^/]+" split_path ${CMAKE_CURRENT_SOURCE_DIR}) @@ -56,22 +42,9 @@ function(add_lldb_library name) if (PARAM_OBJECT) add_library(${name} ${libkind} ${srcs}) else() - if (PARAM_SHARED) - if (LLDB_LINKER_SUPPORTS_GROUPS) - llvm_add_library(${name} ${libkind} ${srcs} LINK_LIBS - -Wl,--start-group ${LLDB_USED_LIBS} -Wl,--end-group - -Wl,--start-group ${CLANG_USED_LIBS} -Wl,--end-group - DEPENDS ${PARAM_DEPENDS} - ) - else() - llvm_add_library(${name} ${libkind} ${srcs} LINK_LIBS - ${LLDB_USED_LIBS} ${CLANG_USED_LIBS} - DEPENDS ${PARAM_DEPENDS} - ) - endif() - else() - llvm_add_library(${name} ${libkind} ${srcs} DEPENDS ${PARAM_DEPENDS}) - endif() + llvm_add_library(${name} ${libkind} ${srcs} LINK_LIBS + ${PARAM_LINK_LIBS} + DEPENDS ${PARAM_DEPENDS}) if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "liblldb") if (PARAM_SHARED) @@ -112,8 +85,17 @@ function(add_lldb_library name) endfunction(add_lldb_library) function(add_lldb_executable name) - cmake_parse_arguments(ARG "INCLUDE_IN_FRAMEWORK;GENERATE_INSTALL" "" "" ${ARGN}) + cmake_parse_arguments(ARG + "INCLUDE_IN_FRAMEWORK;GENERATE_INSTALL" + "" + "LINK_LIBS;LINK_COMPONENTS" + ${ARGN} + ) + + list(APPEND LLVM_LINK_COMPONENTS ${ARG_LINK_COMPONENTS}) add_llvm_executable(${name} ${ARG_UNPARSED_ARGUMENTS}) + + target_link_libraries(${name} ${ARG_LINK_LIBS}) set_target_properties(${name} PROPERTIES FOLDER "lldb executables") |
