Remove a goofy CMake hack and use the standard CMake facilities to

express library-level dependencies within Clang.

This is no more verbose really, and plays nicer with the rest of the
CMake facilities. It should also have no change in functionality.

llvm-svn: 158888
This commit is contained in:
Chandler Carruth 2012-06-21 01:30:21 +00:00
parent c7b0bdffe7
commit 28969b4139
30 changed files with 295 additions and 177 deletions

View File

@ -192,7 +192,6 @@ macro(add_clang_library name)
add_dependencies( ${name} ${LLVM_COMMON_DEPENDS} )
endif( LLVM_COMMON_DEPENDS )
target_link_libraries( ${name} ${LLVM_USED_LIBS} )
llvm_config( ${name} ${LLVM_LINK_COMPONENTS} )
target_link_libraries( ${name} ${LLVM_COMMON_LIBS} )
link_system_libs( ${name} )

View File

@ -1,14 +1,14 @@
set(MODULE TRUE)
set( LLVM_USED_LIBS
clangFrontend
clangAST
)
set( LLVM_LINK_COMPONENTS support mc)
add_clang_library(PrintFunctionNames PrintFunctionNames.cpp)
target_link_libraries(PrintFunctionNames
clangFrontend
clangAST
)
set_target_properties(PrintFunctionNames
PROPERTIES
LINKER_LANGUAGE CXX

View File

@ -1,13 +1,13 @@
set(MODULE TRUE)
set( LLVM_USED_LIBS
clangStaticAnalyzerCore
)
set( LLVM_LINK_COMPONENTS support mc)
add_clang_library(SampleAnalyzerPlugin MainCallChecker.cpp)
target_link_libraries(SampleAnalyzerPlugin
clangStaticAnalyzerCore
)
set_target_properties(SampleAnalyzerPlugin
PROPERTIES
LINKER_LANGUAGE CXX

View File

@ -1,34 +1,37 @@
set(LLVM_USED_LIBS
clangFrontend
clangSerialization
clangDriver
clangCodeGen
clangSema
clangStaticAnalyzerFrontend
clangStaticAnalyzerCheckers
clangStaticAnalyzerCore
clangAnalysis
clangRewrite
clangAST
clangParse
clangLex
clangBasic
)
set(LLVM_LINK_COMPONENTS
jit
interpreter
nativecodegen
asmparser
bitreader
bitwriter
codegen
ipo
linker
selectiondag
jit
interpreter
nativecodegen
asmparser
bitreader
bitwriter
codegen
ipo
linker
selectiondag
)
add_clang_executable(clang-interpreter
main.cpp
)
add_dependencies(clang-interpreter clang-headers)
add_dependencies(clang-interpreter
clang-headers
)
target_link_libraries(clang-interpreter
clangFrontend
clangSerialization
clangDriver
clangCodeGen
clangSema
clangStaticAnalyzerFrontend
clangStaticAnalyzerCheckers
clangStaticAnalyzerCore
clangAnalysis
clangRewrite
clangAST
clangParse
clangLex
clangBasic
)

View File

@ -1,5 +1,3 @@
set(LLVM_USED_LIBS clangBasic clangAST clangParse clangFrontend clangRewrite)
add_clang_library(clangARCMigrate
ARCMT.cpp
ARCMTActions.cpp
@ -27,3 +25,11 @@ add_dependencies(clangARCMigrate
ClangAttrList
ClangDeclNodes
ClangStmtNodes)
target_link_libraries(clangARCMigrate
clangBasic
clangAST
clangParse
clangFrontend
clangRewrite
)

View File

@ -1,7 +1,5 @@
set(LLVM_LINK_COMPONENTS support)
set(LLVM_USED_LIBS clangBasic clangLex)
add_clang_library(clangAST
APValue.cpp
ASTConsumer.cpp
@ -54,5 +52,17 @@ add_clang_library(clangAST
VTTBuilder.cpp
)
add_dependencies(clangAST ClangARMNeon ClangAttrClasses ClangAttrList
ClangAttrImpl ClangDiagnosticAST ClangDeclNodes ClangStmtNodes)
add_dependencies(clangAST
ClangARMNeon
ClangAttrClasses
ClangAttrList
ClangAttrImpl
ClangDiagnosticAST
ClangDeclNodes
ClangStmtNodes
)
target_link_libraries(clangAST
clangBasic
clangLex
)

View File

@ -1,5 +1,3 @@
set(LLVM_USED_LIBS clangBasic clangAST)
add_clang_library(clangAnalysis
AnalysisDeclContext.cpp
CallGraph.cpp
@ -20,5 +18,15 @@ add_clang_library(clangAnalysis
UninitializedValues.cpp
)
add_dependencies(clangAnalysis ClangAttrClasses ClangAttrList
ClangDiagnosticAnalysis ClangDeclNodes ClangStmtNodes)
add_dependencies(clangAnalysis
ClangAttrClasses
ClangAttrList
ClangDiagnosticAnalysis
ClangDeclNodes
ClangStmtNodes
)
target_link_libraries(clangAnalysis
clangBasic
clangAST
)

View File

@ -32,18 +32,18 @@ if (Subversion_FOUND AND EXISTS "${CLANG_SOURCE_DIR}/.svn")
PROPERTIES COMPILE_DEFINITIONS "SVN_REVISION=\"${CLANG_WC_REVISION}\"")
endif()
add_dependencies(clangBasic
ClangARMNeon
ClangAttrList
ClangDiagnosticAnalysis
ClangDiagnosticAST
ClangDiagnosticCommon
ClangDiagnosticDriver
ClangDiagnosticFrontend
ClangDiagnosticGroups
ClangDiagnosticLex
ClangDiagnosticParse
ClangDiagnosticSema
ClangDiagnosticSerialization
ClangDiagnosticIndexName)
add_dependencies(clangBasic
ClangARMNeon
ClangAttrList
ClangDiagnosticAnalysis
ClangDiagnosticAST
ClangDiagnosticCommon
ClangDiagnosticDriver
ClangDiagnosticFrontend
ClangDiagnosticGroups
ClangDiagnosticLex
ClangDiagnosticParse
ClangDiagnosticSema
ClangDiagnosticSerialization
ClangDiagnosticIndexName
)

View File

@ -8,8 +8,6 @@ set(LLVM_LINK_COMPONENTS
vectorize
)
set(LLVM_USED_LIBS clangBasic clangAST clangFrontend)
add_clang_library(clangCodeGen
BackendUtil.cpp
CGBlocks.cpp
@ -52,5 +50,15 @@ add_clang_library(clangCodeGen
TargetInfo.cpp
)
add_dependencies(clangCodeGen ClangAttrClasses ClangAttrList ClangDeclNodes
ClangStmtNodes)
add_dependencies(clangCodeGen
ClangAttrClasses
ClangAttrList
ClangDeclNodes
ClangStmtNodes
)
target_link_libraries(clangCodeGen
clangBasic
clangAST
clangFrontend
)

View File

@ -1,5 +1,3 @@
set(LLVM_USED_LIBS clangBasic)
add_clang_library(clangDriver
Action.cpp
Arg.cpp
@ -20,6 +18,13 @@ add_clang_library(clangDriver
Types.cpp
)
add_dependencies(clangDriver
ClangAttrList
ClangDiagnosticDriver
ClangDriverOptions
ClangCC1AsOptions
)
add_dependencies(clangDriver ClangAttrList ClangDiagnosticDriver
ClangDriverOptions ClangCC1AsOptions)
target_link_libraries(clangDriver
clangBasic
)

View File

@ -1,7 +1,11 @@
set(LLVM_USED_LIBS clangBasic clangAST clangLex)
add_clang_library(clangEdit
Commit.cpp
EditedSource.cpp
RewriteObjCFoundationAPI.cpp
)
target_link_libraries(clangEdit
clangBasic
clangAST
clangLex
)

View File

@ -1,14 +1,3 @@
set( LLVM_USED_LIBS
clangAST
clangBasic
clangDriver
clangEdit
clangLex
clangParse
clangSema
clangSerialization
)
add_clang_library(clangFrontend
ASTConsumers.cpp
ASTMerge.cpp
@ -41,7 +30,6 @@ add_clang_library(clangFrontend
Warnings.cpp
)
add_dependencies(clangFrontend
ClangAttrClasses
ClangAttrList
@ -50,4 +38,16 @@ add_dependencies(clangFrontend
ClangDiagnosticSema
ClangDriverOptions
ClangDeclNodes
ClangStmtNodes)
ClangStmtNodes
)
target_link_libraries(clangFrontend
clangAST
clangBasic
clangDriver
clangEdit
clangLex
clangParse
clangSema
clangSerialization
)

View File

@ -1,10 +1,18 @@
set(LLVM_USED_LIBS clangDriver clangFrontend clangRewrite clangCodeGen
clangStaticAnalyzerFrontend clangStaticAnalyzerCheckers clangStaticAnalyzerCore
clangARCMigrate)
add_clang_library(clangFrontendTool
ExecuteCompilerInvocation.cpp
)
add_dependencies(clangFrontendTool
ClangDiagnosticFrontend)
ClangDiagnosticFrontend
)
target_link_libraries(clangFrontendTool
clangDriver
clangFrontend
clangRewrite
clangCodeGen
clangStaticAnalyzerFrontend
clangStaticAnalyzerCheckers
clangStaticAnalyzerCore
clangARCMigrate
)

View File

@ -2,8 +2,6 @@
set(LLVM_LINK_COMPONENTS support)
set(LLVM_USED_LIBS clangBasic)
add_clang_library(clangLex
HeaderMap.cpp
HeaderSearch.cpp
@ -28,4 +26,11 @@ add_clang_library(clangLex
TokenLexer.cpp
)
add_dependencies(clangLex ClangDiagnosticLex ClangAttrSpellings)
add_dependencies(clangLex
ClangDiagnosticLex
ClangAttrSpellings
)
target_link_libraries(clangLex
clangBasic
)

View File

@ -1,5 +1,3 @@
set(LLVM_USED_LIBS clangBasic clangAST clangLex clangSema)
add_clang_library(clangParse
ParseAST.cpp
ParseCXXInlineMethods.cpp
@ -16,4 +14,18 @@ add_clang_library(clangParse
Parser.cpp
)
add_dependencies(clangParse ClangAttrClasses ClangAttrList ClangDeclNodes ClangDiagnosticParse ClangStmtNodes ClangAttrLateParsed)
add_dependencies(clangParse
ClangAttrClasses
ClangAttrList
ClangDeclNodes
ClangDiagnosticParse
ClangStmtNodes
ClangAttrLateParsed
)
target_link_libraries(clangParse
clangBasic
clangAST
clangLex
clangSema
)

View File

@ -1,5 +1,3 @@
set(LLVM_USED_LIBS clangBasic clangAST clangParse clangFrontend)
add_clang_library(clangRewrite
DeltaTree.cpp
FixItRewriter.cpp
@ -20,4 +18,12 @@ add_dependencies(clangRewrite
ClangAttrClasses
ClangAttrList
ClangDeclNodes
ClangStmtNodes)
ClangStmtNodes
)
target_link_libraries(clangRewrite
clangBasic
clangAST
clangParse
clangFrontend
)

View File

@ -1,11 +1,3 @@
set(LLVM_USED_LIBS
clangAST
clangAnalysis
clangBasic
clangEdit
clangLex
)
add_clang_library(clangSema
AnalysisBasedWarnings.cpp
AttributeList.cpp
@ -50,9 +42,22 @@ add_clang_library(clangSema
TargetAttributesSema.cpp
)
add_dependencies(clangSema ClangARMNeon ClangAttrClasses ClangAttrList
ClangDiagnosticSema ClangDeclNodes ClangStmtNodes
ClangAttrTemplateInstantiate ClangAttrParsedAttrList
ClangAttrParsedAttrKinds)
add_dependencies(clangSema
ClangARMNeon
ClangAttrClasses
ClangAttrList
ClangDiagnosticSema
ClangDeclNodes
ClangStmtNodes
ClangAttrTemplateInstantiate
ClangAttrParsedAttrList
ClangAttrParsedAttrKinds
)
target_link_libraries(clangSema
clangAST
clangAnalysis
clangBasic
clangEdit
clangLex
)

View File

@ -1,5 +1,3 @@
set(LLVM_USED_LIBS clangSema)
add_clang_library(clangSerialization
ASTCommon.h
ASTReaderInternals.h
@ -24,4 +22,9 @@ add_dependencies(clangSerialization
ClangDiagnosticSema
ClangDiagnosticSerialization
ClangDeclNodes
ClangStmtNodes)
ClangStmtNodes
)
target_link_libraries(clangSerialization
clangSema
)

View File

@ -3,8 +3,6 @@ clang_tablegen(Checkers.inc -gen-clang-sa-checkers
SOURCE Checkers.td
TARGET ClangSACheckers)
set(LLVM_USED_LIBS clangBasic clangAST clangStaticAnalyzerCore)
add_clang_library(clangStaticAnalyzerCheckers
AdjustedReturnValueChecker.cpp
AnalyzerStatsChecker.cpp
@ -79,3 +77,9 @@ add_dependencies(clangStaticAnalyzerCheckers
ClangStmtNodes
ClangSACheckers
)
target_link_libraries(clangStaticAnalyzerCheckers
clangBasic
clangAST
clangStaticAnalyzerCore
)

View File

@ -1,7 +1,5 @@
set(LLVM_LINK_COMPONENTS support)
set(LLVM_USED_LIBS clangBasic clangLex clangAST clangFrontend clangRewrite)
add_clang_library(clangStaticAnalyzerCore
AnalysisManager.cpp
APSIntType.cpp
@ -42,5 +40,17 @@ add_clang_library(clangStaticAnalyzerCore
TextPathDiagnostics.cpp
)
add_dependencies(clangStaticAnalyzerCore ClangAttrClasses ClangAttrList ClangDeclNodes
ClangStmtNodes)
add_dependencies(clangStaticAnalyzerCore
ClangAttrClasses
ClangAttrList
ClangDeclNodes
ClangStmtNodes
)
target_link_libraries(clangStaticAnalyzerCore
clangBasic
clangLex
clangAST
clangFrontend
clangRewrite
)

View File

@ -1,8 +1,5 @@
set(LLVM_NO_RTTI 1)
set(LLVM_USED_LIBS clangBasic clangLex clangAST clangFrontend clangRewrite
clangStaticAnalyzerCheckers)
include_directories( ${CMAKE_CURRENT_BINARY_DIR}/../Checkers )
add_clang_library(clangStaticAnalyzerFrontend
@ -19,3 +16,12 @@ add_dependencies(clangStaticAnalyzerFrontend
ClangDeclNodes
ClangStmtNodes
)
target_link_libraries(clangStaticAnalyzerFrontend
clangBasic
clangLex
clangAST
clangFrontend
clangRewrite
clangStaticAnalyzerCheckers
)

View File

@ -1,5 +1,4 @@
set(LLVM_LINK_COMPONENTS support)
SET(LLVM_USED_LIBS clangBasic clangFrontend clangAST clangRewrite)
add_clang_library(clangTooling
CompilationDatabase.cpp
@ -7,3 +6,10 @@ add_clang_library(clangTooling
Tooling.cpp
ArgumentsAdjusters.cpp
)
target_link_libraries(clangTooling
clangBasic
clangFrontend
clangAST
clangRewrite
)

View File

@ -1,9 +1,3 @@
set(LLVM_USED_LIBS
clangARCMigrate
clangEdit
clangRewrite
)
set( LLVM_LINK_COMPONENTS
support
mc
@ -12,3 +6,9 @@ set( LLVM_LINK_COMPONENTS
add_clang_executable(arcmt-test
arcmt-test.cpp
)
target_link_libraries(arcmt-test
clangARCMigrate
clangEdit
clangRewrite
)

View File

@ -1,5 +1,3 @@
set(LLVM_USED_LIBS libclang)
set( LLVM_LINK_COMPONENTS
support
mc
@ -9,6 +7,10 @@ add_clang_executable(c-arcmt-test
c-arcmt-test.c
)
target_link_libraries(c-arcmt-test
libclang
)
set_target_properties(c-arcmt-test
PROPERTIES
LINKER_LANGUAGE CXX)

View File

@ -1,5 +1,3 @@
set(LLVM_USED_LIBS libclang)
set( LLVM_LINK_COMPONENTS
support
mc
@ -9,6 +7,10 @@ add_clang_executable(c-index-test
c-index-test.c
)
target_link_libraries(c-index-test
libclang
)
set_target_properties(c-index-test
PROPERTIES
LINKER_LANGUAGE CXX)

View File

@ -1,5 +1,8 @@
set(LLVM_USED_LIBS clangTooling clangBasic)
add_clang_executable(clang-check
ClangCheck.cpp
)
target_link_libraries(clang-check
clangTooling
clangBasic
)

View File

@ -2,13 +2,6 @@ set( LLVM_LINK_COMPONENTS
support
)
set( LLVM_USED_LIBS
clangBasic
clangLex
clangSema
clangFrontend
)
add_clang_executable(diagtool
diagtool_main.cpp
DiagTool.cpp
@ -21,6 +14,13 @@ add_dependencies(diagtool
ClangDiagnosticIndexName
)
target_link_libraries(diagtool
clangBasic
clangLex
clangSema
clangFrontend
)
if(UNIX)
set(CLANGXX_LINK_OR_COPY create_symlink)
else()

View File

@ -1,4 +1,22 @@
set( LLVM_USED_LIBS
set( LLVM_LINK_COMPONENTS
${LLVM_TARGETS_TO_BUILD}
asmparser
bitreader
bitwriter
codegen
instrumentation
ipo
linker
selectiondag
)
add_clang_executable(clang
driver.cpp
cc1_main.cpp
cc1as_main.cpp
)
target_link_libraries(clang
clangFrontendTool
clangAST
clangAnalysis
@ -19,24 +37,6 @@ set( LLVM_USED_LIBS
clangStaticAnalyzerCore
)
set( LLVM_LINK_COMPONENTS
${LLVM_TARGETS_TO_BUILD}
asmparser
bitreader
bitwriter
codegen
instrumentation
ipo
linker
selectiondag
)
add_clang_executable(clang
driver.cpp
cc1_main.cpp
cc1as_main.cpp
)
set_target_properties(clang PROPERTIES VERSION ${CLANG_EXECUTABLE_VERSION})
if(UNIX)

View File

@ -1,15 +1,3 @@
set(LLVM_USED_LIBS
clangARCMigrate
clangRewrite
clangFrontend
clangDriver
clangSerialization
clangSema
clangEdit
clangAST
clangLex
clangBasic)
set( LLVM_LINK_COMPONENTS
support
mc
@ -49,9 +37,23 @@ set(SOURCES
../../include/clang-c/Index.h
)
set(LIBRARIES
clangARCMigrate
clangRewrite
clangFrontend
clangDriver
clangSerialization
clangSema
clangEdit
clangAST
clangLex
clangBasic
)
if( LLVM_ENABLE_PIC )
set(SHARED_LIBRARY TRUE)
add_clang_library(libclang ${SOURCES})
target_link_libraries(libclang ${LIBRARIES})
if(WIN32)
set_target_properties(libclang
@ -84,6 +86,7 @@ endif()
if( NOT BUILD_SHARED_LIBS AND NOT WIN32 )
add_clang_library(${LIBCLANG_STATIC_TARGET_NAME} STATIC ${SOURCES})
target_link_libraries(${LIBCLANG_STATIC_TARGET_NAME} ${LIBRARIES})
set_target_properties(${LIBCLANG_STATIC_TARGET_NAME}
PROPERTIES

View File

@ -8,7 +8,6 @@ include(LLVMParseArguments)
# 'basename(test_dirname)Tests'.
function(add_clang_unittest)
parse_arguments(CLANG_UNITTEST "USED_LIBS" "" ${ARGN})
set(LLVM_USED_LIBS ${CLANG_UNITTEST_USED_LIBS})
list(GET CLANG_UNITTEST_DEFAULT_ARGS 0 test_dirname)
list(REMOVE_AT CLANG_UNITTEST_DEFAULT_ARGS 0)
@ -24,6 +23,7 @@ function(add_clang_unittest)
set(EXCLUDE_FROM_ALL ON)
endif()
add_clang_executable(${test_name}Tests ${CLANG_UNITTEST_DEFAULT_ARGS})
target_link_libraries(${test_name}Tests ${CLANG_UNITTEST_USED_LIBS})
add_dependencies(ClangUnitTests ${test_name}Tests)
set_target_properties(${test_name}Tests PROPERTIES FOLDER "Clang tests")
endfunction()