summaryrefslogtreecommitdiff
path: root/cmake/modules/AddLLDB.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/modules/AddLLDB.cmake')
-rw-r--r--cmake/modules/AddLLDB.cmake58
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")