From 2356bf27f722eddbdf3c9acf4072cbdd348f00d0 Mon Sep 17 00:00:00 2001 From: Alex Langford Date: Mon, 20 Mar 2023 16:41:11 -0700 Subject: [PATCH] [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 --- lldb/cmake/modules/AddLLDB.cmake | 12 +++++++++++- lldb/source/Utility/CMakeLists.txt | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) 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 -- 2.34.1