From b8859f6791fb4ca16c0cb3d76bc92fbe7018cac4 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.

llvm-svn: 185548
---
 clang/lib/FrontendTool/CMakeLists.txt | 11 ++++++++---
 clang/tools/CMakeLists.txt            |  4 +++-
 clang/tools/Makefile                  |  6 +++++-
 3 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/clang/lib/FrontendTool/CMakeLists.txt b/clang/lib/FrontendTool/CMakeLists.txt
index 176511b0e4c8..3e6aba441ed1 100644
--- a/clang/lib/FrontendTool/CMakeLists.txt
+++ b/clang/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/clang/tools/CMakeLists.txt b/clang/tools/CMakeLists.txt
index eb5e366cfd71..13f4666297a9 100644
--- a/clang/tools/CMakeLists.txt
+++ b/clang/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/clang/tools/Makefile b/clang/tools/Makefile
index c8bc583c2fd3..902e6736d7d7 100644
--- a/clang/tools/Makefile
+++ b/clang/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