diff --git a/lldb/cmake/modules/AddLLDB.cmake b/lldb/cmake/modules/AddLLDB.cmake index 374946fe4908..e8fa70a5a684 100644 --- a/lldb/cmake/modules/AddLLDB.cmake +++ b/lldb/cmake/modules/AddLLDB.cmake @@ -37,13 +37,23 @@ 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;PLUGIN;FRAMEWORK" + "MODULE;SHARED;STATIC;OBJECT;PLUGIN;FRAMEWORK;NO_INTERNAL_DEPENDENCIES" "INSTALL_PREFIX;ENTITLEMENTS" "EXTRA_CXXFLAGS;DEPENDS;LINK_LIBS;LINK_COMPONENTS;CLANG_LIBS" ${ARGN}) llvm_process_sources(srcs ${PARAM_UNPARSED_ARGUMENTS}) list(APPEND LLVM_LINK_COMPONENTS ${PARAM_LINK_COMPONENTS}) + if(PARAM_NO_INTERNAL_DEPENDENCIES) + foreach(link_lib ${PARAM_LINK_LIBS}) + if (link_lib MATCHES "^lldb") + message(FATAL_ERROR + "Library ${name} cannot depend on any other lldb libs " + "(Found ${link_lib} in LINK_LIBS)") + endif() + endforeach() + endif() + if(PARAM_PLUGIN) set_property(GLOBAL APPEND PROPERTY LLDB_PLUGINS ${name}) endif() diff --git a/lldb/source/Utility/CMakeLists.txt b/lldb/source/Utility/CMakeLists.txt index 89acd7cd2eaf..c48ccdd7c1ed 100644 --- a/lldb/source/Utility/CMakeLists.txt +++ b/lldb/source/Utility/CMakeLists.txt @@ -23,7 +23,7 @@ if (NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB ) list(APPEND LLDB_SYSTEM_LIBS atomic) endif() -add_lldb_library(lldbUtility +add_lldb_library(lldbUtility NO_INTERNAL_DEPENDENCIES ArchSpec.cpp Args.cpp Baton.cpp