From d771b447e2bf44830b6887b3c9a9ec433fa311c5 Mon Sep 17 00:00:00 2001
From: Jordan Rose <jordan_rose@apple.com>
Date: Wed, 3 Jul 2013 16:20:29 +0000
Subject: [PATCH] With CLANG_ENABLE_STATIC_ANALYZER=0, link clang properly and
 skip clang-check.

Previously, the CMake build still tried to link clang against the static
analyzer libraries, even if CLANG_ENABLE_STATIC_ANALYZER was off.
Furthermore, clang-check depends on the analyzer, so it should be disabled
(in both CMake and configure builds).

In theory, clang-check could be made to conditionally include analyzer
support (like clang itself), but for now this at least gets a CMake ALL_BUILD
working.

Patch by Stephen Kelly, modified by me.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185548 91177308-0d34-0410-b5e6-96231b3b80d8
---
 lib/FrontendTool/CMakeLists.txt | 11 ++++++++---
 tools/CMakeLists.txt            |  4 +++-
 tools/Makefile                  |  6 +++++-
 3 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/lib/FrontendTool/CMakeLists.txt b/lib/FrontendTool/CMakeLists.txt
index 176511b0e4c..3e6aba441ed 100644
--- a/lib/FrontendTool/CMakeLists.txt
+++ b/lib/FrontendTool/CMakeLists.txt
@@ -14,8 +14,13 @@ target_link_libraries(clangFrontendTool
   clangRewriteCore
   clangRewriteFrontend
   clangCodeGen
-  clangStaticAnalyzerFrontend
-  clangStaticAnalyzerCheckers
-  clangStaticAnalyzerCore
   clangARCMigrate
   )
+
+if(CLANG_ENABLE_STATIC_ANALYZER)
+  target_link_libraries(clangFrontendTool
+    clangStaticAnalyzerFrontend
+    clangStaticAnalyzerCheckers
+    clangStaticAnalyzerCore
+    )
+endif()
diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
index eb5e366cfd7..13f4666297a 100644
--- a/tools/CMakeLists.txt
+++ b/tools/CMakeLists.txt
@@ -4,7 +4,9 @@ add_subdirectory(arcmt-test)
 add_subdirectory(c-arcmt-test)
 add_subdirectory(diagtool)
 add_subdirectory(driver)
-add_subdirectory(clang-check)
+if(CLANG_ENABLE_STATIC_ANALYZER)
+  add_subdirectory(clang-check)
+endif()
 add_subdirectory(clang-format)
 
 # We support checking out the clang-tools-extra repository into the 'extra'
diff --git a/tools/Makefile b/tools/Makefile
index c8bc583c2fd..902e6736d7d 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -12,7 +12,11 @@ CLANG_LEVEL := ..
 include $(CLANG_LEVEL)/../../Makefile.config
 
 DIRS := libclang c-index-test arcmt-test c-arcmt-test
-PARALLEL_DIRS := driver diagtool clang-check clang-format
+PARALLEL_DIRS := driver diagtool clang-format
+
+ifeq ($(ENABLE_CLANG_STATIC_ANALYZER),1)
+  PARALLEL_DIRS += clang-check
+endif
 
 # Recurse into the extra repository of tools if present.
 OPTIONAL_PARALLEL_DIRS := extra
-- 
GitLab