The following changes were required to fix these tests:
- Change LLVM_ENABLE_PLUGINS to an option and move it to llvm/CMakeLists.txt with an appropriate default -- which matches the original default behavior.
- Move the plugins directory from clang/test/Analysis clang/lib/Analysis. It's not enough to add an exclude to the lit.local.cfg file because add_lit_testsuites recurses the tree and automatically adds the appropriate check- targets, which don't make sense for the plugins because they aren't tests and don't have RUN statements.
Here's a list of the clang-check-anlysis* targets with this change:
$ ninja -t targets all| sed -n "s/.*\/\(check[^:]*\):.*/\1/p" | sort -u | grep clang-analysis check-clang-analysis check-clang-analysis-checkers check-clang-analysis-copypaste check-clang-analysis-diagnostics check-clang-analysis-engine check-clang-analysis-exploration_order check-clang-analysis-html_diagnostics check-clang-analysis-html_diagnostics-relevant_lines check-clang-analysis-inlining check-clang-analysis-objc check-clang-analysis-unified-sources check-clang-analysis-z3
- Simplify the logic and only include the subdirectories under clang/lib/Analysis/plugins if LLVM_ENABLE_PLUGINS is set.
I think this should have a dependency on CLANG_ENABLE_STATIC_ANALYZER like in clang/test/CMakeLists.txt, otherwise my build (which disables CLANG_ENABLE_STATIC_ANALYZER) fails because these plugins are being added to the build.