summaryrefslogtreecommitdiff
path: root/lldb/cmake
diff options
context:
space:
mode:
authorAlex Langford <alangford@apple.com>2023-03-21 11:20:31 -0700
committerAlex Langford <alangford@apple.com>2023-03-21 16:24:36 -0700
commit5499b026d218f694a8c9f148466da3259f6cc1fd (patch)
treea8d516924aedc86ba21acb3d1e0949b832161da3 /lldb/cmake
parent13e9afd16d8aac49caf3abaa35bc97b5430331d3 (diff)
downloadllvm-5499b026d218f694a8c9f148466da3259f6cc1fd.tar.gz
[lldb][CMake] Enforce not linking against plugin libs in core libs
Non-plugin lldb libraries should generally not be linking against lldb plugin libraries. Enforce this in CMake. Differential Revision: https://reviews.llvm.org/D146553
Diffstat (limited to 'lldb/cmake')
-rw-r--r--lldb/cmake/modules/AddLLDB.cmake12
1 files changed, 11 insertions, 1 deletions
diff --git a/lldb/cmake/modules/AddLLDB.cmake b/lldb/cmake/modules/AddLLDB.cmake
index e8fa70a5a684..f2d96dfd68e0 100644
--- a/lldb/cmake/modules/AddLLDB.cmake
+++ b/lldb/cmake/modules/AddLLDB.cmake
@@ -37,7 +37,7 @@ 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;NO_INTERNAL_DEPENDENCIES"
+ "MODULE;SHARED;STATIC;OBJECT;PLUGIN;FRAMEWORK;NO_INTERNAL_DEPENDENCIES;NO_PLUGIN_DEPENDENCIES"
"INSTALL_PREFIX;ENTITLEMENTS"
"EXTRA_CXXFLAGS;DEPENDS;LINK_LIBS;LINK_COMPONENTS;CLANG_LIBS"
${ARGN})
@@ -54,6 +54,16 @@ function(add_lldb_library name)
endforeach()
endif()
+ if(PARAM_NO_PLUGIN_DEPENDENCIES)
+ foreach(link_lib ${PARAM_LINK_LIBS})
+ if (link_lib MATCHES "^lldbPlugin")
+ message(FATAL_ERROR
+ "Library ${name} cannot depend on a plugin (Found ${link_lib} in "
+ "LINK_LIBS)")
+ endif()
+ endforeach()
+ endif()
+
if(PARAM_PLUGIN)
set_property(GLOBAL APPEND PROPERTY LLDB_PLUGINS ${name})
endif()