Skip to content

Commit 2356bf2

Browse files
committed
[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
1 parent 2b34d59 commit 2356bf2

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

lldb/cmake/modules/AddLLDB.cmake

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,23 @@ function(add_lldb_library name)
3737
# only supported parameters to this macro are the optional
3838
# MODULE;SHARED;STATIC library type and source files
3939
cmake_parse_arguments(PARAM
40-
"MODULE;SHARED;STATIC;OBJECT;PLUGIN;FRAMEWORK"
40+
"MODULE;SHARED;STATIC;OBJECT;PLUGIN;FRAMEWORK;NO_INTERNAL_DEPENDENCIES"
4141
"INSTALL_PREFIX;ENTITLEMENTS"
4242
"EXTRA_CXXFLAGS;DEPENDS;LINK_LIBS;LINK_COMPONENTS;CLANG_LIBS"
4343
${ARGN})
4444
llvm_process_sources(srcs ${PARAM_UNPARSED_ARGUMENTS})
4545
list(APPEND LLVM_LINK_COMPONENTS ${PARAM_LINK_COMPONENTS})
4646

47+
if(PARAM_NO_INTERNAL_DEPENDENCIES)
48+
foreach(link_lib ${PARAM_LINK_LIBS})
49+
if (link_lib MATCHES "^lldb")
50+
message(FATAL_ERROR
51+
"Library ${name} cannot depend on any other lldb libs "
52+
"(Found ${link_lib} in LINK_LIBS)")
53+
endif()
54+
endforeach()
55+
endif()
56+
4757
if(PARAM_PLUGIN)
4858
set_property(GLOBAL APPEND PROPERTY LLDB_PLUGINS ${name})
4959
endif()

lldb/source/Utility/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ if (NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB )
2323
list(APPEND LLDB_SYSTEM_LIBS atomic)
2424
endif()
2525

26-
add_lldb_library(lldbUtility
26+
add_lldb_library(lldbUtility NO_INTERNAL_DEPENDENCIES
2727
ArchSpec.cpp
2828
Args.cpp
2929
Baton.cpp

0 commit comments

Comments
 (0)