Fix dependencies now that the ARC migrator depends on the static analyzer.

Thanks for pointing this out, Stephen. I think this is right now -- I
attempted to try all four valid combinations with both the autoconf and
CMake builds.

See also LLVM changes to the configure script.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189027 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 22b12f3..eb0b0a7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -274,9 +274,9 @@
 
 add_definitions( -D_GNU_SOURCE )
 
-option(CLANG_ENABLE_ARCMT "Enable ARCMT by default." ON)
-option(CLANG_ENABLE_REWRITER "Enable rewriter by default." ON)
-option(CLANG_ENABLE_STATIC_ANALYZER "Enable static analyzer by default." ON)
+option(CLANG_ENABLE_ARCMT "Build ARCMT." ON)
+option(CLANG_ENABLE_REWRITER "Build rewriter." ON)
+option(CLANG_ENABLE_STATIC_ANALYZER "Build static analyzer." ON)
 
 if (NOT CLANG_ENABLE_REWRITER AND CLANG_ENABLE_ARCMT)
   message(FATAL_ERROR "Cannot disable rewriter while enabling ARCMT")
@@ -286,6 +286,10 @@
   message(FATAL_ERROR "Cannot disable rewriter while enabling static analyzer")
 endif()
 
+if (NOT CLANG_ENABLE_STATIC_ANALYZER AND CLANG_ENABLE_ARCMT)
+  message(FATAL_ERROR "Cannot disable static analyzer while enabling ARCMT")
+endif()
+
 if(CLANG_ENABLE_ARCMT)
   add_definitions(-DCLANG_ENABLE_ARCMT)
 endif()
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index 6df8ebc..7bb65e9 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -11,7 +11,9 @@
 add_subdirectory(Analysis)
 add_subdirectory(Edit)
 add_subdirectory(Rewrite)
-add_subdirectory(ARCMigrate)
+if(CLANG_ENABLE_ARCMT)
+  add_subdirectory(ARCMigrate)
+endif()
 add_subdirectory(Driver)
 add_subdirectory(Serialization)
 add_subdirectory(Frontend)
diff --git a/lib/FrontendTool/CMakeLists.txt b/lib/FrontendTool/CMakeLists.txt
index 3e6aba4..28a864a 100644
--- a/lib/FrontendTool/CMakeLists.txt
+++ b/lib/FrontendTool/CMakeLists.txt
@@ -14,9 +14,14 @@
   clangRewriteCore
   clangRewriteFrontend
   clangCodeGen
-  clangARCMigrate
   )
 
+if(CLANG_ENABLE_ARCMT)
+  target_link_libraries(clangFrontendTool
+    clangARCMigrate
+    )
+endif()
+
 if(CLANG_ENABLE_STATIC_ANALYZER)
   target_link_libraries(clangFrontendTool
     clangStaticAnalyzerFrontend
diff --git a/lib/Makefile b/lib/Makefile
index 5712527..6663268 100755
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -10,8 +10,8 @@
 
 # ARCMigrate and Rewrite are always needed because of libclang.
 PARALLEL_DIRS = Headers Basic Lex Parse AST Sema CodeGen Analysis Frontend \
-                FrontendTool Tooling Driver Format Edit ARCMigrate Rewrite \
-                Serialization Index
+                FrontendTool Tooling Driver Format Edit Rewrite Serialization \
+                Index
 
 include $(CLANG_LEVEL)/../../Makefile.config
 
@@ -23,4 +23,8 @@
 PARALLEL_DIRS += StaticAnalyzer
 endif
 
+ifeq ($(ENABLE_CLANG_ARCMT),1)
+PARALLEL_DIRS += ARCMigrate
+endif
+
 include $(CLANG_LEVEL)/Makefile
diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
index 13f4666..fef0adc 100644
--- a/tools/CMakeLists.txt
+++ b/tools/CMakeLists.txt
@@ -1,13 +1,18 @@
-add_subdirectory(libclang)
-add_subdirectory(c-index-test)
-add_subdirectory(arcmt-test)
-add_subdirectory(c-arcmt-test)
 add_subdirectory(diagtool)
 add_subdirectory(driver)
+if(CLANG_ENABLE_REWRITER)
+  add_subdirectory(clang-format)
+endif()
+
+if(CLANG_ENABLE_ARCMT)
+  add_subdirectory(libclang)
+  add_subdirectory(c-index-test)
+  add_subdirectory(arcmt-test)
+  add_subdirectory(c-arcmt-test)
+endif()
 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'
 # subdirectory. It contains tools developed as part of the Clang/LLVM project
diff --git a/tools/Makefile b/tools/Makefile
index dddc07b..8cd0a06 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -11,11 +11,16 @@
 
 include $(CLANG_LEVEL)/../../Makefile.config
 
-DIRS := libclang c-index-test arcmt-test c-arcmt-test
-PARALLEL_DIRS := driver diagtool clang-format
+DIRS := 
+PARALLEL_DIRS := driver diagtool
 
-ifeq ($(ENABLE_CLANG_STATIC_ANALYZER),1)
-  PARALLEL_DIRS += clang-check
+ifeq ($(ENABLE_CLANG_REWRITER),1)
+  PARALLEL_DIRS += clang-format
+endif
+
+ifeq ($(ENABLE_CLANG_ARCMT), 1)
+  DIRS += libclang c-index-test c-arcmt-test
+  PARALLEL_DIRS += arcmt-test
 endif
 
 # Recurse into the extra repository of tools if present.
diff --git a/unittests/Makefile b/unittests/Makefile
index 542863e..d0dfe47 100644
--- a/unittests/Makefile
+++ b/unittests/Makefile
@@ -19,14 +19,10 @@
 include $(CLANG_LEVEL)/../..//Makefile.config
 
 ifeq ($(ENABLE_CLANG_REWRITER),1)
-PARALLEL_DIRS += Format
+PARALLEL_DIRS += Format ASTMatchers AST Tooling Sema
 endif
 
-ifeq ($(ENABLE_CLANG_REWRITER),1)
-PARALLEL_DIRS += ASTMatchers AST Tooling Sema
-endif
-
-ifeq ($(ENABLE_CLANG_STATIC_ANALYZER),1)
+ifeq ($(ENABLE_CLANG_ARCMT),1)
 PARALLEL_DIRS += Frontend
 endif