From a1e4b122236924504007522f2ea9e00a18a2142f Mon Sep 17 00:00:00 2001 From: Jordan Rose Date: Thu, 22 Aug 2013 15:50:02 +0000 Subject: [PATCH] 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. llvm-svn: 189027 --- clang/CMakeLists.txt | 10 +++++++--- clang/lib/CMakeLists.txt | 4 +++- clang/lib/FrontendTool/CMakeLists.txt | 7 ++++++- clang/lib/Makefile | 8 ++++++-- clang/tools/CMakeLists.txt | 15 ++++++++++----- clang/tools/Makefile | 13 +++++++++---- clang/unittests/Makefile | 8 ++------ 7 files changed, 43 insertions(+), 22 deletions(-) diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt index 22b12f302b02..eb0b0a7737df 100644 --- a/clang/CMakeLists.txt +++ b/clang/CMakeLists.txt @@ -274,9 +274,9 @@ install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/ 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 @@ if (NOT CLANG_ENABLE_REWRITER AND CLANG_ENABLE_STATIC_ANALYZER) 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/clang/lib/CMakeLists.txt b/clang/lib/CMakeLists.txt index 6df8ebcce655..7bb65e923e2c 100644 --- a/clang/lib/CMakeLists.txt +++ b/clang/lib/CMakeLists.txt @@ -11,7 +11,9 @@ add_subdirectory(CodeGen) 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/clang/lib/FrontendTool/CMakeLists.txt b/clang/lib/FrontendTool/CMakeLists.txt index 3e6aba441ed1..28a864a633ed 100644 --- a/clang/lib/FrontendTool/CMakeLists.txt +++ b/clang/lib/FrontendTool/CMakeLists.txt @@ -14,9 +14,14 @@ target_link_libraries(clangFrontendTool 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/clang/lib/Makefile b/clang/lib/Makefile index 57125273c557..66632688d933 100755 --- a/clang/lib/Makefile +++ b/clang/lib/Makefile @@ -10,8 +10,8 @@ CLANG_LEVEL := .. # 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 @@ ifeq ($(ENABLE_CLANG_STATIC_ANALYZER),1) PARALLEL_DIRS += StaticAnalyzer endif +ifeq ($(ENABLE_CLANG_ARCMT),1) +PARALLEL_DIRS += ARCMigrate +endif + include $(CLANG_LEVEL)/Makefile diff --git a/clang/tools/CMakeLists.txt b/clang/tools/CMakeLists.txt index 13f4666297a9..fef0adc62156 100644 --- a/clang/tools/CMakeLists.txt +++ b/clang/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/clang/tools/Makefile b/clang/tools/Makefile index dddc07be1f2e..8cd0a065aa33 100644 --- a/clang/tools/Makefile +++ b/clang/tools/Makefile @@ -11,11 +11,16 @@ CLANG_LEVEL := .. 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/clang/unittests/Makefile b/clang/unittests/Makefile index 542863e591d9..d0dfe471d159 100644 --- a/clang/unittests/Makefile +++ b/clang/unittests/Makefile @@ -19,14 +19,10 @@ PARALLEL_DIRS = Basic Lex 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