[lldb][CMake] Enforce not letting lldbUtility link against any other lldb libs

lldbUtility is not supposed to depend on anything else in lldb. Let's
enforce that constraint in CMake rather than hoping something doesn't
slip in under the radar.

Differential Revision: https://reviews.llvm.org/D146473
This commit is contained in:
Alex Langford
2023-03-20 16:41:11 -07:00
parent 2b34d59858
commit 2356bf27f7
2 changed files with 12 additions and 2 deletions

View File

@@ -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()

View File

@@ -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