CMakeLists.txt revision 12161968f3bcb7bb1053d2da36ac066d795ba7dd
1f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)set(LLVM_LINK_COMPONENTS
2f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  ${LLVM_TARGETS_TO_BUILD}
3f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  asmparser
4f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  support
5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  bitreader
6f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  mc
7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  )
8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
9116680a4aac90f2aa7413d9095a592090648e557Ben Murdochset(SOURCES
10f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  ARCMigrate.cpp
115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  CIndex.cpp
12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  CIndexCXX.cpp
13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  CIndexCodeCompletion.cpp
14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  CIndexDiagnostic.cpp
155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  CIndexDiagnostic.h
16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  CIndexHigh.cpp
17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  CIndexInclusionStack.cpp
18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  CIndexUSRs.cpp
19f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  CIndexer.cpp
20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  CIndexer.h
215c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  CXComment.cpp
22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  CXCursor.cpp
23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  CXCursor.h
245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  CXCompilationDatabase.cpp
25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  CXLoadedDiagnostic.cpp
26f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  CXLoadedDiagnostic.h
27f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  CXSourceLocation.cpp
28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  CXSourceLocation.h
29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  CXStoredDiagnostic.cpp
30f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  CXString.cpp
31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  CXString.h
32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  CXTranslationUnit.h
33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  CXType.cpp
34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  CXType.h
35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  IndexBody.cpp
36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  IndexDecl.cpp
37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  IndexTypeSourceInfo.cpp
385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  Index_Internal.h
39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  Indexing.cpp
40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  IndexingContext.cpp
41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  IndexingContext.h
42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SimpleFormatContext.h
43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  ../../include/clang-c/Index.h
44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  )
45116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
46116680a4aac90f2aa7413d9095a592090648e557Ben Murdochset(LIBRARIES
47f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  clangIDE
48f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  clangARCMigrate
49f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  clangRewriteCore
50f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  clangRewriteFrontend
51f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  clangFrontend
52f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  clangDriver
53f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  clangSerialization
54f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  clangSema
55f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  clangEdit
56f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  clangAST
57f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  clangLex
58f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  clangTooling
59010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  clangBasic
60f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  clangFormat
61f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  )
62116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
63116680a4aac90f2aa7413d9095a592090648e557Ben Murdochset(GENERATED_HEADERS
64116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  ClangAttrClasses
65116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  ClangAttrList
66116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  ClangAttrParsedAttrList
67116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  ClangCommentNodes
68116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  ClangDiagnosticCommon
69116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  ClangDiagnosticFrontend
70116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  ClangDeclNodes
71116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  ClangStmtNodes
72116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  )
73116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
74116680a4aac90f2aa7413d9095a592090648e557Ben Murdochif( LLVM_ENABLE_PIC )
75116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  set(SHARED_LIBRARY TRUE)
76116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  add_clang_library(libclang ${SOURCES})
77116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  target_link_libraries(libclang ${LIBRARIES})
78116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  add_dependencies(libclang ${GENERATED_HEADERS} clang-headers)
79116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
80116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  if(WIN32)
81116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    set_target_properties(libclang
82116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      PROPERTIES
83116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      OUTPUT_NAME "libclang"
84116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      VERSION ${LIBCLANG_LIBRARY_VERSION}
85116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      DEFINE_SYMBOL _CINDEX_LIB_)
86116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  else()
87116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    set_target_properties(libclang
88f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      PROPERTIES
89f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      OUTPUT_NAME "clang"
90f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      VERSION ${LIBCLANG_LIBRARY_VERSION}
91116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      DEFINE_SYMBOL _CINDEX_LIB_)
92116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  endif()
93116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
94116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
95116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    set(LIBCLANG_LINK_FLAGS
96116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      "-Wl,-compatibility_version -Wl,1 -Wl,-dead_strip")
97116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    set_target_properties(libclang
98f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      PROPERTIES
99f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      LINK_FLAGS "${LIBCLANG_LINK_FLAGS}"
100f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      INSTALL_NAME_DIR "@executable_path/../lib")
101116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  endif()
102f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
103f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
104f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  set(LIBCLANG_STATIC_TARGET_NAME libclang_static)
105f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)else()
106f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  set(LIBCLANG_STATIC_TARGET_NAME libclang)
107f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)endif()
108f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
109f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)option(LIBCLANG_BUILD_STATIC
110f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  "Build libclang as a static library (in addition to a shared one)" OFF)
111f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
112116680a4aac90f2aa7413d9095a592090648e557Ben Murdochif( (NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC) AND NOT WIN32 )
113f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  add_clang_library(${LIBCLANG_STATIC_TARGET_NAME} STATIC ${SOURCES})
114116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  target_link_libraries(${LIBCLANG_STATIC_TARGET_NAME} ${LIBRARIES})
115116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  add_dependencies(${LIBCLANG_STATIC_TARGET_NAME} ${GENERATED_HEADERS} clang-headers)
116f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
117116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  set_target_properties(${LIBCLANG_STATIC_TARGET_NAME}
118f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    PROPERTIES
119f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    OUTPUT_NAME "clang")
120f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)endif()
121f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)