From: NAKAMURA Takumi Date: Fri, 21 Feb 2014 07:59:59 +0000 (+0000) Subject: [CMake] Get rid of explicit dependencies to include/clang/*.inc and introduce CLANG_T... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0eed94f665c304535f9bde0c37829ed56b6da801;p=clang [CMake] Get rid of explicit dependencies to include/clang/*.inc and introduce CLANG_TABLEGEN_TARGETS. This does; - clang_tablegen() adds each tblgen'd target to global property CLANG_TABLEGEN_TARGETS as list. - List of targets is added to LLVM_COMMON_DEPENDS. - all clang libraries and targets depend on generated headers. You might wonder this would be regression, but in fact, this is little loss. - Almost all of clang libraries depend on tblgen'd files and clang-tblgen. - clang-tblgen may cause short stall-out but doesn't cause unconditional rebuild. - Each library's dependencies to tblgen'd files might vary along headers' structure. It made hard to track and update *really optimal* dependencies. Each dependency to intrinsics_gen and ClangSACheckers is left as DEPENDS. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201842 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/CMakeLists.txt b/CMakeLists.txt index fe9974edbb..38b14b5a0f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -268,6 +268,7 @@ function(clang_tablegen) if( CTG_TARGET ) add_custom_target( ${CTG_TARGET} DEPENDS ${output_file} ${CTG_DEPENDS} ) set_target_properties( ${CTG_TARGET} PROPERTIES FOLDER "Clang tablegenning") + set_property(GLOBAL APPEND PROPERTY CLANG_TABLEGEN_TARGETS ${CTG_TARGET}) endif() endfunction(clang_tablegen) @@ -405,6 +406,11 @@ mark_as_advanced(CLANG_EXECUTABLE_VERSION LIBCLANG_LIBRARY_VERSION) add_subdirectory(utils/TableGen) add_subdirectory(include) + +# All targets below may depend on all tablegen'd files. +get_property(CLANG_TABLEGEN_TARGETS GLOBAL PROPERTY CLANG_TABLEGEN_TARGETS) +list(APPEND LLVM_COMMON_DEPENDS ${CLANG_TABLEGEN_TARGETS}) + add_subdirectory(lib) add_subdirectory(tools) add_subdirectory(runtime) diff --git a/examples/PrintFunctionNames/CMakeLists.txt b/examples/PrintFunctionNames/CMakeLists.txt index f24b92d320..876b5da87c 100644 --- a/examples/PrintFunctionNames/CMakeLists.txt +++ b/examples/PrintFunctionNames/CMakeLists.txt @@ -10,13 +10,3 @@ if( NOT WIN32 ) # Win32 mangles symbols differently, and endif() add_llvm_loadable_module(PrintFunctionNames PrintFunctionNames.cpp) - -add_dependencies(PrintFunctionNames - ClangAttrClasses - ClangAttrList - ClangCommentCommandList - ClangCommentNodes - ClangDeclNodes - ClangDiagnosticCommon - ClangStmtNodes - ) diff --git a/examples/analyzer-plugin/CMakeLists.txt b/examples/analyzer-plugin/CMakeLists.txt index 9c65d4872a..b2a20e1278 100644 --- a/examples/analyzer-plugin/CMakeLists.txt +++ b/examples/analyzer-plugin/CMakeLists.txt @@ -1,11 +1 @@ add_llvm_loadable_module(SampleAnalyzerPlugin MainCallChecker.cpp) - -add_dependencies(SampleAnalyzerPlugin - ClangAttrClasses - ClangAttrList - ClangCommentCommandList - ClangCommentNodes - ClangDeclNodes - ClangDiagnosticCommon - ClangStmtNodes - ) diff --git a/lib/ARCMigrate/CMakeLists.txt b/lib/ARCMigrate/CMakeLists.txt index b4b5d865d8..0bfdb6c136 100644 --- a/lib/ARCMigrate/CMakeLists.txt +++ b/lib/ARCMigrate/CMakeLists.txt @@ -25,18 +25,6 @@ add_clang_library(clangARCMigrate Transforms.cpp ) -add_dependencies(clangARCMigrate - ClangAttrClasses - ClangAttrList - ClangAttrParsedAttrList - ClangCommentNodes - ClangDeclNodes - ClangDiagnosticCommon - ClangDiagnosticGroups - ClangDiagnosticSema - ClangStmtNodes - ) - target_link_libraries(clangARCMigrate clangAST clangAnalysis diff --git a/lib/AST/CMakeLists.txt b/lib/AST/CMakeLists.txt index e0b3c33890..1da3ac6712 100644 --- a/lib/AST/CMakeLists.txt +++ b/lib/AST/CMakeLists.txt @@ -59,27 +59,6 @@ add_clang_library(clangAST VTTBuilder.cpp ) -add_dependencies(clangAST - ClangARMNeon - ClangAttrClasses - ClangAttrList - ClangAttrImpl - ClangAttrDump - ClangAttrVisitor - ClangCommentCommandInfo - ClangCommentCommandList - ClangCommentNodes - ClangCommentHTMLTags - ClangCommentHTMLTagsProperties - ClangCommentHTMLNamedCharacterReferences - ClangDeclNodes - ClangDiagnosticAST - ClangDiagnosticComment - ClangDiagnosticCommon - ClangDiagnosticSema - ClangStmtNodes - ) - target_link_libraries(clangAST clangBasic clangLex diff --git a/lib/ASTMatchers/CMakeLists.txt b/lib/ASTMatchers/CMakeLists.txt index 82a5e6d3a9..e2a8fc5020 100644 --- a/lib/ASTMatchers/CMakeLists.txt +++ b/lib/ASTMatchers/CMakeLists.txt @@ -7,16 +7,6 @@ add_clang_library(clangASTMatchers ASTMatchersInternal.cpp ) -add_dependencies(clangASTMatchers - ClangAttrClasses - ClangAttrImpl - ClangAttrList - ClangCommentNodes - ClangDeclNodes - ClangDiagnosticCommon - ClangStmtNodes - ) - target_link_libraries(clangASTMatchers clangAST ) diff --git a/lib/Analysis/CMakeLists.txt b/lib/Analysis/CMakeLists.txt index 23aadcf1df..231db95f38 100644 --- a/lib/Analysis/CMakeLists.txt +++ b/lib/Analysis/CMakeLists.txt @@ -26,16 +26,6 @@ add_clang_library(clangAnalysis UninitializedValues.cpp ) -add_dependencies(clangAnalysis - ClangAttrClasses - ClangAttrList - ClangCommentNodes - ClangDiagnosticCommon - ClangDeclNodes - ClangDiagnosticAnalysis - ClangStmtNodes - ) - target_link_libraries(clangAnalysis clangBasic clangAST diff --git a/lib/Basic/CMakeLists.txt b/lib/Basic/CMakeLists.txt index 2efe8127b9..d248d3dc82 100644 --- a/lib/Basic/CMakeLists.txt +++ b/lib/Basic/CMakeLists.txt @@ -51,20 +51,3 @@ if (Subversion_FOUND AND EXISTS "${CLANG_SOURCE_DIR}/.svn") PROPERTIES COMPILE_DEFINITIONS "HAVE_SVN_VERSION_INC") endif() - -add_dependencies(clangBasic - ClangARMNeon - ClangAttrList - ClangDiagnosticAnalysis - ClangDiagnosticAST - ClangDiagnosticComment - ClangDiagnosticCommon - ClangDiagnosticDriver - ClangDiagnosticFrontend - ClangDiagnosticGroups - ClangDiagnosticIndexName - ClangDiagnosticLex - ClangDiagnosticParse - ClangDiagnosticSema - ClangDiagnosticSerialization - ) diff --git a/lib/CodeGen/CMakeLists.txt b/lib/CodeGen/CMakeLists.txt index 60ad9cb442..a2048c5221 100644 --- a/lib/CodeGen/CMakeLists.txt +++ b/lib/CodeGen/CMakeLists.txt @@ -60,17 +60,6 @@ add_clang_library(clangCodeGen TargetInfo.cpp ) -add_dependencies(clangCodeGen - ClangARMNeon - ClangAttrClasses - ClangAttrList - ClangCommentNodes - ClangDeclNodes - ClangDiagnosticCommon - ClangDiagnosticFrontend - ClangStmtNodes - ) - target_link_libraries(clangCodeGen clangBasic clangAST diff --git a/lib/Driver/CMakeLists.txt b/lib/Driver/CMakeLists.txt index 818d554d4e..9468601d40 100644 --- a/lib/Driver/CMakeLists.txt +++ b/lib/Driver/CMakeLists.txt @@ -20,13 +20,9 @@ add_clang_library(clangDriver WindowsToolChain.cpp Tools.cpp Types.cpp - ) -add_dependencies(clangDriver - ClangAttrList + DEPENDS ClangCC1AsOptions - ClangDiagnosticCommon - ClangDiagnosticDriver ClangDriverOptions ) diff --git a/lib/Edit/CMakeLists.txt b/lib/Edit/CMakeLists.txt index 85e1298640..b81f8a95cf 100644 --- a/lib/Edit/CMakeLists.txt +++ b/lib/Edit/CMakeLists.txt @@ -8,15 +8,6 @@ add_clang_library(clangEdit RewriteObjCFoundationAPI.cpp ) -add_dependencies(clangEdit - ClangAttrClasses - ClangAttrList - ClangCommentNodes - ClangDeclNodes - ClangDiagnosticCommon - ClangStmtNodes - ) - target_link_libraries(clangEdit clangBasic clangAST diff --git a/lib/Format/CMakeLists.txt b/lib/Format/CMakeLists.txt index eb24386171..e87c940102 100644 --- a/lib/Format/CMakeLists.txt +++ b/lib/Format/CMakeLists.txt @@ -10,15 +10,6 @@ add_clang_library(clangFormat WhitespaceManager.cpp ) -add_dependencies(clangFormat - ClangAttrClasses - ClangAttrList - ClangDeclNodes - ClangDiagnosticCommon - ClangDiagnosticFrontend - ClangStmtNodes - ) - target_link_libraries(clangFormat clangBasic clangLex diff --git a/lib/Frontend/CMakeLists.txt b/lib/Frontend/CMakeLists.txt index 3539405ff3..f601283eb3 100644 --- a/lib/Frontend/CMakeLists.txt +++ b/lib/Frontend/CMakeLists.txt @@ -35,22 +35,6 @@ add_clang_library(clangFrontend Warnings.cpp ) -add_dependencies(clangFrontend - ClangAttrClasses - ClangAttrList - ClangAttrParsedAttrList - ClangCommentNodes - ClangDeclNodes - ClangDiagnosticAST - ClangDiagnosticCommon - ClangDiagnosticDriver - ClangDiagnosticFrontend - ClangDiagnosticLex - ClangDiagnosticSema - ClangDriverOptions - ClangStmtNodes - ) - target_link_libraries(clangFrontend clangAST clangBasic diff --git a/lib/FrontendTool/CMakeLists.txt b/lib/FrontendTool/CMakeLists.txt index c818d6f3e6..4274a604a2 100644 --- a/lib/FrontendTool/CMakeLists.txt +++ b/lib/FrontendTool/CMakeLists.txt @@ -7,12 +7,6 @@ add_clang_library(clangFrontendTool ExecuteCompilerInvocation.cpp ) -add_dependencies(clangFrontendTool - ClangDiagnosticCommon - ClangDiagnosticFrontend - ClangDriverOptions - ) - target_link_libraries(clangFrontendTool clangBasic clangCodeGen diff --git a/lib/Lex/CMakeLists.txt b/lib/Lex/CMakeLists.txt index 2ee468294a..f5050179b1 100644 --- a/lib/Lex/CMakeLists.txt +++ b/lib/Lex/CMakeLists.txt @@ -27,12 +27,6 @@ add_clang_library(clangLex TokenLexer.cpp ) -add_dependencies(clangLex - ClangAttrSpellings - ClangDiagnosticCommon - ClangDiagnosticLex - ) - target_link_libraries(clangLex clangBasic ) diff --git a/lib/Parse/CMakeLists.txt b/lib/Parse/CMakeLists.txt index 924ebff99a..43500bfaa6 100644 --- a/lib/Parse/CMakeLists.txt +++ b/lib/Parse/CMakeLists.txt @@ -21,18 +21,6 @@ add_clang_library(clangParse Parser.cpp ) -add_dependencies(clangParse - ClangAttrClasses - ClangAttrParserStringSwitches - ClangAttrList - ClangAttrParsedAttrList - ClangCommentNodes - ClangDeclNodes - ClangDiagnosticCommon - ClangDiagnosticParse - ClangStmtNodes - ) - target_link_libraries(clangParse clangBasic clangAST diff --git a/lib/Rewrite/Core/CMakeLists.txt b/lib/Rewrite/Core/CMakeLists.txt index 0c17862d64..6e9505fd9f 100644 --- a/lib/Rewrite/Core/CMakeLists.txt +++ b/lib/Rewrite/Core/CMakeLists.txt @@ -10,17 +10,6 @@ add_clang_library(clangRewriteCore TokenRewriter.cpp ) -add_dependencies(clangRewriteCore - ClangAttrClasses - ClangAttrList - ClangAttrParsedAttrList - ClangCommentNodes - ClangDeclNodes - ClangDiagnosticCommon - ClangDiagnosticFrontend - ClangStmtNodes - ) - target_link_libraries(clangRewriteCore clangAST clangBasic diff --git a/lib/Rewrite/Frontend/CMakeLists.txt b/lib/Rewrite/Frontend/CMakeLists.txt index a354ebfec3..c1146181f3 100644 --- a/lib/Rewrite/Frontend/CMakeLists.txt +++ b/lib/Rewrite/Frontend/CMakeLists.txt @@ -13,17 +13,6 @@ add_clang_library(clangRewriteFrontend RewriteTest.cpp ) -add_dependencies(clangRewriteFrontend - ClangAttrClasses - ClangAttrList - ClangAttrParsedAttrList - ClangCommentNodes - ClangDeclNodes - ClangDiagnosticCommon - ClangDiagnosticFrontend - ClangStmtNodes - ) - target_link_libraries(clangRewriteFrontend clangAST clangBasic diff --git a/lib/Sema/CMakeLists.txt b/lib/Sema/CMakeLists.txt index 75702e1d8b..1c16f0f987 100644 --- a/lib/Sema/CMakeLists.txt +++ b/lib/Sema/CMakeLists.txt @@ -50,25 +50,6 @@ add_clang_library(clangSema TypeLocBuilder.cpp ) -add_dependencies(clangSema - ClangARMNeon - ClangAttrClasses - ClangAttrList - ClangAttrParsedAttrList - ClangAttrParsedAttrKinds - ClangAttrParsedAttrImpl - ClangAttrSpellingListIndex - ClangAttrTemplateInstantiate - ClangCommentNodes - ClangDeclNodes - ClangDiagnosticAST - ClangDiagnosticComment - ClangDiagnosticCommon - ClangDiagnosticParse - ClangDiagnosticSema - ClangStmtNodes - ) - target_link_libraries(clangSema clangAST clangAnalysis diff --git a/lib/Serialization/CMakeLists.txt b/lib/Serialization/CMakeLists.txt index cade8fad72..cd7082006d 100644 --- a/lib/Serialization/CMakeLists.txt +++ b/lib/Serialization/CMakeLists.txt @@ -22,21 +22,6 @@ add_clang_library(clangSerialization ASTReaderInternals.h ) -add_dependencies(clangSerialization - ClangAttrClasses - ClangAttrList - ClangAttrParsedAttrList - ClangAttrPCHRead - ClangAttrPCHWrite - ClangCommentNodes - ClangDeclNodes - ClangDiagnosticCommon - ClangDiagnosticLex - ClangDiagnosticSema - ClangDiagnosticSerialization - ClangStmtNodes - ) - target_link_libraries(clangSerialization clangAST clangBasic diff --git a/lib/StaticAnalyzer/Checkers/CMakeLists.txt b/lib/StaticAnalyzer/Checkers/CMakeLists.txt index 8a8411cbea..b231864123 100644 --- a/lib/StaticAnalyzer/Checkers/CMakeLists.txt +++ b/lib/StaticAnalyzer/Checkers/CMakeLists.txt @@ -74,15 +74,8 @@ add_clang_library(clangStaticAnalyzerCheckers UnreachableCodeChecker.cpp VLASizeChecker.cpp VirtualCallChecker.cpp - ) -add_dependencies(clangStaticAnalyzerCheckers - ClangAttrClasses - ClangAttrList - ClangCommentNodes - ClangDeclNodes - ClangDiagnosticCommon - ClangStmtNodes + DEPENDS ClangSACheckers ) diff --git a/lib/StaticAnalyzer/Core/CMakeLists.txt b/lib/StaticAnalyzer/Core/CMakeLists.txt index c3e037ceee..89c0be138d 100644 --- a/lib/StaticAnalyzer/Core/CMakeLists.txt +++ b/lib/StaticAnalyzer/Core/CMakeLists.txt @@ -41,15 +41,6 @@ add_clang_library(clangStaticAnalyzerCore SymbolManager.cpp ) -add_dependencies(clangStaticAnalyzerCore - ClangAttrClasses - ClangAttrList - ClangCommentNodes - ClangDeclNodes - ClangDiagnosticCommon - ClangStmtNodes - ) - target_link_libraries(clangStaticAnalyzerCore clangAST clangAnalysis diff --git a/lib/StaticAnalyzer/Frontend/CMakeLists.txt b/lib/StaticAnalyzer/Frontend/CMakeLists.txt index 6734ae501d..4df4556648 100644 --- a/lib/StaticAnalyzer/Frontend/CMakeLists.txt +++ b/lib/StaticAnalyzer/Frontend/CMakeLists.txt @@ -10,16 +10,6 @@ add_clang_library(clangStaticAnalyzerFrontend FrontendActions.cpp ) -add_dependencies(clangStaticAnalyzerFrontend - ClangAttrClasses - ClangAttrList - ClangCommentNodes - ClangDeclNodes - ClangDiagnosticCommon - ClangDiagnosticFrontend - ClangStmtNodes - ) - target_link_libraries(clangStaticAnalyzerFrontend clangAST clangAnalysis diff --git a/lib/Tooling/CMakeLists.txt b/lib/Tooling/CMakeLists.txt index 3cce49d0ca..83c71b6c1e 100644 --- a/lib/Tooling/CMakeLists.txt +++ b/lib/Tooling/CMakeLists.txt @@ -11,15 +11,6 @@ add_clang_library(clangTooling Tooling.cpp ) -add_dependencies(clangTooling - ClangAttrClasses - ClangAttrList - ClangDeclNodes - ClangDiagnosticCommon - ClangDiagnosticFrontend - ClangStmtNodes - ) - target_link_libraries(clangTooling clangAST clangASTMatchers diff --git a/tools/diagtool/CMakeLists.txt b/tools/diagtool/CMakeLists.txt index c56d8a70c4..e88c2ab6e8 100644 --- a/tools/diagtool/CMakeLists.txt +++ b/tools/diagtool/CMakeLists.txt @@ -11,10 +11,6 @@ add_clang_executable(diagtool TreeView.cpp ) -add_dependencies(diagtool - ClangDiagnosticIndexName - ) - target_link_libraries(diagtool clangBasic clangFrontend diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt index 95a8a6ccba..5d908ae096 100644 --- a/tools/libclang/CMakeLists.txt +++ b/tools/libclang/CMakeLists.txt @@ -53,19 +53,6 @@ set(LIBRARIES clangTooling ) -set(GENERATED_HEADERS - ClangAttrClasses - ClangAttrList - ClangAttrParsedAttrList - ClangAttrVisitor - ClangCommentCommandList - ClangCommentNodes - ClangDiagnosticCommon - ClangDiagnosticFrontend - ClangDeclNodes - ClangStmtNodes - ) - option(LIBCLANG_BUILD_STATIC "Build libclang as a static library (in addition to a shared one)" OFF) @@ -79,9 +66,11 @@ if(MSVC) endif() if( LLVM_ENABLE_PIC ) - add_clang_library(libclang SHARED ${SOURCES}) + add_clang_library(libclang SHARED + ${SOURCES} + DEPENDS clang-headers + ) target_link_libraries(libclang ${LIBRARIES}) - add_dependencies(libclang ${GENERATED_HEADERS} clang-headers) if(WIN32) set_target_properties(libclang @@ -120,7 +109,6 @@ endif() if( (NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC) AND NOT WIN32 ) add_clang_library(${LIBCLANG_STATIC_TARGET_NAME} STATIC ${SOURCES}) target_link_libraries(${LIBCLANG_STATIC_TARGET_NAME} ${LIBRARIES}) - add_dependencies(${LIBCLANG_STATIC_TARGET_NAME} ${GENERATED_HEADERS} clang-headers) set_target_properties(${LIBCLANG_STATIC_TARGET_NAME} PROPERTIES