From ad324f4b75bc32e4b68778f1e46ed7dcc738259e Mon Sep 17 00:00:00 2001 From: Don Hinton Date: Tue, 28 May 2019 06:26:58 +0000 Subject: [PATCH] [test] Fix plugin tests Summary: The following changes were required to fix these tests: 1) Change LLVM_ENABLE_PLUGINS to an option and move it to llvm/CMakeLists.txt with an appropriate default -- which matches the original default behavior. 2) 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 ``` 3) Simplify the logic and only include the subdirectories under clang/lib/Analysis/plugins if LLVM_ENABLE_PLUGINS is set. Reviewed By: NoQ Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D62445 llvm-svn: 361790 --- CMakeLists.txt | 11 +++++++++++ cmake/modules/HandleLLVMOptions.cmake | 8 -------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 895f9ab7189..6ca7b6da6dc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -672,6 +672,17 @@ set(TARGET_TRIPLE "${LLVM_DEFAULT_TARGET_TRIPLE}") message(STATUS "LLVM host triple: ${LLVM_HOST_TRIPLE}") message(STATUS "LLVM default target triple: ${LLVM_DEFAULT_TARGET_TRIPLE}") +if(WIN32 OR CYGWIN) + if(BUILD_SHARED_LIBS OR LLVM_BUILD_LLVM_DYLIB) + set(LLVM_ENABLE_PLUGINS_default ON) + else() + set(LLVM_ENABLE_PLUGINS_default OFF) + endif() +else() + set(LLVM_ENABLE_PLUGINS_default ON) +endif() +option(LLVM_ENABLE_PLUGINS "Enable plugin support" ${LLVM_ENABLE_PLUGINS_default}) + include(HandleLLVMOptions) # Verify that we can find a Python 2 interpreter. Python 3 is unsupported. diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake index cb9a01e1d39..8e7c93c9a93 100644 --- a/cmake/modules/HandleLLVMOptions.cmake +++ b/cmake/modules/HandleLLVMOptions.cmake @@ -912,14 +912,6 @@ if(LLVM_LINK_LLVM_DYLIB AND LLVM_EXPORT_SYMBOLS_FOR_PLUGINS) message(FATAL_ERROR "LLVM_LINK_LLVM_DYLIB not compatible with LLVM_EXPORT_SYMBOLS_FOR_PLUGINS") endif() -# Plugin support -# FIXME: Make this configurable. -if(BUILD_SHARED_LIBS OR LLVM_BUILD_LLVM_DYLIB) - set(LLVM_ENABLE_PLUGINS ON) -else() - set(LLVM_ENABLE_PLUGINS OFF) -endif() - # By default we should enable LLVM_ENABLE_IDE only for multi-configuration # generators. This option disables optional build system features that make IDEs # less usable.