summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNAKAMURA Takumi <geek4civic@gmail.com>2014-02-21 07:59:59 +0000
committerNAKAMURA Takumi <geek4civic@gmail.com>2014-02-21 07:59:59 +0000
commit0eed94f665c304535f9bde0c37829ed56b6da801 (patch)
tree09991a310f2b57770512eb5721e86585f15ef09c
parent7edcb6e633d35c53e1629df17cc8d15e11b489cb (diff)
downloadclang-0eed94f665c304535f9bde0c37829ed56b6da801.tar.gz
[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
-rw-r--r--CMakeLists.txt6
-rw-r--r--examples/PrintFunctionNames/CMakeLists.txt10
-rw-r--r--examples/analyzer-plugin/CMakeLists.txt10
-rw-r--r--lib/ARCMigrate/CMakeLists.txt12
-rw-r--r--lib/AST/CMakeLists.txt21
-rw-r--r--lib/ASTMatchers/CMakeLists.txt10
-rw-r--r--lib/Analysis/CMakeLists.txt10
-rw-r--r--lib/Basic/CMakeLists.txt17
-rw-r--r--lib/CodeGen/CMakeLists.txt11
-rw-r--r--lib/Driver/CMakeLists.txt6
-rw-r--r--lib/Edit/CMakeLists.txt9
-rw-r--r--lib/Format/CMakeLists.txt9
-rw-r--r--lib/Frontend/CMakeLists.txt16
-rw-r--r--lib/FrontendTool/CMakeLists.txt6
-rw-r--r--lib/Lex/CMakeLists.txt6
-rw-r--r--lib/Parse/CMakeLists.txt12
-rw-r--r--lib/Rewrite/Core/CMakeLists.txt11
-rw-r--r--lib/Rewrite/Frontend/CMakeLists.txt11
-rw-r--r--lib/Sema/CMakeLists.txt19
-rw-r--r--lib/Serialization/CMakeLists.txt15
-rw-r--r--lib/StaticAnalyzer/Checkers/CMakeLists.txt9
-rw-r--r--lib/StaticAnalyzer/Core/CMakeLists.txt9
-rw-r--r--lib/StaticAnalyzer/Frontend/CMakeLists.txt10
-rw-r--r--lib/Tooling/CMakeLists.txt9
-rw-r--r--tools/diagtool/CMakeLists.txt4
-rw-r--r--tools/libclang/CMakeLists.txt20
26 files changed, 12 insertions, 276 deletions
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