clang-analyzer plugins require LLVM_ENABLE_PLUGINS also
The clang-analyzer plugins are not linked to a particular tool, so they can only be compiled if plugins are broadly supported. We could opt instead to decide whether to link them to specifically against clang or with undefined symbols, depending on the value of LLVM_ENABLE_PLUGINS, but we do not currently expect there to be a use case for that rather niche configuration. Differential Revision: https://reviews.llvm.org/D119591
This commit is contained in:
parent
fbf7bbcb83
commit
9d59cfc67e
|
@ -476,9 +476,14 @@ add_definitions( -D_GNU_SOURCE )
|
|||
option(CLANG_BUILD_TOOLS
|
||||
"Build the Clang tools. If OFF, just generate build targets." ON)
|
||||
|
||||
if(LLVM_ENABLE_PLUGINS OR LLVM_EXPORT_SYMBOLS_FOR_PLUGINS)
|
||||
set(HAVE_CLANG_PLUGIN_SUPPORT ON)
|
||||
else()
|
||||
set(HAVE_CLANG_PLUGIN_SUPPORT OFF)
|
||||
endif()
|
||||
CMAKE_DEPENDENT_OPTION(CLANG_PLUGIN_SUPPORT
|
||||
"Build clang with plugin support" ON
|
||||
"LLVM_ENABLE_PLUGINS OR LLVM_EXPORT_SYMBOLS_FOR_PLUGINS" OFF)
|
||||
"HAVE_CLANG_PLUGIN_SUPPORT" OFF)
|
||||
|
||||
option(CLANG_ENABLE_ARCMT "Build ARCMT." ON)
|
||||
option(CLANG_ENABLE_STATIC_ANALYZER
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
add_llvm_library(AnnotateFunctions MODULE AnnotateFunctions.cpp PLUGIN_TOOL clang)
|
||||
|
||||
if(CLANG_PLUGIN_SUPPORT AND (WIN32 OR CYGWIN))
|
||||
if(WIN32 OR CYGWIN)
|
||||
set(LLVM_LINK_COMPONENTS
|
||||
Support
|
||||
)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
add_llvm_library(Attribute MODULE Attribute.cpp PLUGIN_TOOL clang)
|
||||
|
||||
if(CLANG_PLUGIN_SUPPORT AND (WIN32 OR CYGWIN))
|
||||
if(WIN32 OR CYGWIN)
|
||||
target_link_libraries(Attribute PRIVATE
|
||||
clangAST
|
||||
clangBasic
|
||||
|
|
|
@ -3,8 +3,10 @@ if(NOT CLANG_BUILD_EXAMPLES)
|
|||
set(EXCLUDE_FROM_ALL ON)
|
||||
endif()
|
||||
|
||||
add_subdirectory(PrintFunctionNames)
|
||||
add_subdirectory(AnnotateFunctions)
|
||||
add_subdirectory(Attribute)
|
||||
add_subdirectory(CallSuperAttribute)
|
||||
add_subdirectory(PluginsOrder)
|
||||
if(CLANG_PLUGIN_SUPPORT)
|
||||
add_subdirectory(PrintFunctionNames)
|
||||
add_subdirectory(AnnotateFunctions)
|
||||
add_subdirectory(Attribute)
|
||||
add_subdirectory(CallSuperAttribute)
|
||||
add_subdirectory(PluginsOrder)
|
||||
endif()
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
add_llvm_library(CallSuperAttr MODULE CallSuperAttrInfo.cpp PLUGIN_TOOL clang)
|
||||
|
||||
if(CLANG_PLUGIN_SUPPORT AND (WIN32 OR CYGWIN))
|
||||
if(WIN32 OR CYGWIN)
|
||||
set(LLVM_LINK_COMPONENTS
|
||||
Support
|
||||
)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
add_llvm_library(PluginsOrder MODULE PluginsOrder.cpp PLUGIN_TOOL clang)
|
||||
|
||||
if(CLANG_PLUGIN_SUPPORT AND (WIN32 OR CYGWIN))
|
||||
if(WIN32 OR CYGWIN)
|
||||
set(LLVM_LINK_COMPONENTS
|
||||
Support
|
||||
)
|
||||
|
|
|
@ -11,7 +11,7 @@ endif()
|
|||
|
||||
add_llvm_library(PrintFunctionNames MODULE PrintFunctionNames.cpp PLUGIN_TOOL clang)
|
||||
|
||||
if(CLANG_PLUGIN_SUPPORT AND (WIN32 OR CYGWIN))
|
||||
if(WIN32 OR CYGWIN)
|
||||
set(LLVM_LINK_COMPONENTS
|
||||
Support
|
||||
)
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
if(CLANG_ENABLE_STATIC_ANALYZER AND CLANG_PLUGIN_SUPPORT)
|
||||
# Since these do not specify a specific PLUGIN_TOOL (which could be clang or
|
||||
# clang-tidy), we cannot compile this unless the platform supports plugins with
|
||||
# undefined symbols, and cannot use it unless the user has opted for clang plugins).
|
||||
if(CLANG_ENABLE_STATIC_ANALYZER AND CLANG_PLUGIN_SUPPORT AND LLVM_ENABLE_PLUGINS)
|
||||
add_subdirectory(SampleAnalyzer)
|
||||
add_subdirectory(CheckerDependencyHandling)
|
||||
add_subdirectory(CheckerOptionHandling)
|
||||
|
|
|
@ -95,7 +95,7 @@ if (CLANG_ENABLE_ARCMT)
|
|||
)
|
||||
endif ()
|
||||
|
||||
if (CLANG_BUILD_EXAMPLES)
|
||||
if(CLANG_BUILD_EXAMPLES AND CLANG_PLUGIN_SUPPORT)
|
||||
list(APPEND CLANG_TEST_DEPS
|
||||
Attribute
|
||||
AnnotateFunctions
|
||||
|
@ -145,8 +145,8 @@ if( NOT CLANG_BUILT_STANDALONE )
|
|||
endif()
|
||||
endif()
|
||||
|
||||
if (CLANG_ENABLE_STATIC_ANALYZER)
|
||||
if (CLANG_PLUGIN_SUPPORT)
|
||||
if(CLANG_ENABLE_STATIC_ANALYZER)
|
||||
if(CLANG_PLUGIN_SUPPORT AND LLVM_ENABLE_PLUGINS) # Determine if we built them
|
||||
list(APPEND CLANG_TEST_DEPS
|
||||
SampleAnalyzerPlugin
|
||||
CheckerDependencyHandlingAnalyzerPlugin
|
||||
|
|
Loading…
Reference in New Issue