CMakeLists.txt revision ac179ca12b38afae11f004f986981152d1fa18b1
1set(LLVM_LINK_COMPONENTS
2  ${LLVM_TARGETS_TO_BUILD}
3  asmparser
4  support
5  bitreader
6  mc
7  )
8
9set(SOURCES
10  ARCMigrate.cpp
11  CIndex.cpp
12  CIndexCXX.cpp
13  CIndexCodeCompletion.cpp
14  CIndexDiagnostic.cpp
15  CIndexDiagnostic.h
16  CIndexHigh.cpp
17  CIndexInclusionStack.cpp
18  CIndexUSRs.cpp
19  CIndexer.cpp
20  CIndexer.h
21  CXComment.cpp
22  CXCursor.cpp
23  CXCursor.h
24  CXCompilationDatabase.cpp
25  CXLoadedDiagnostic.cpp
26  CXLoadedDiagnostic.h
27  CXSourceLocation.cpp
28  CXSourceLocation.h
29  CXStoredDiagnostic.cpp
30  CXString.cpp
31  CXString.h
32  CXTranslationUnit.h
33  CXType.cpp
34  CXType.h
35  IndexBody.cpp
36  IndexDecl.cpp
37  IndexTypeSourceInfo.cpp
38  Index_Internal.h
39  Indexing.cpp
40  IndexingContext.cpp
41  IndexingContext.h
42  SimpleFormatContext.h
43  ../../include/clang-c/Index.h
44  )
45
46set(LIBRARIES
47  clangARCMigrate
48  clangRewriteCore
49  clangRewriteFrontend
50  clangFrontend
51  clangDriver
52  clangSerialization
53  clangSema
54  clangEdit
55  clangAST
56  clangLex
57  clangTooling
58  clangBasic
59  clangFormat
60  )
61
62set(GENERATED_HEADERS
63  ClangAttrClasses
64  ClangAttrList
65  ClangAttrParsedAttrList
66  ClangCommentNodes
67  ClangDiagnosticCommon
68  ClangDiagnosticFrontend
69  ClangDeclNodes
70  ClangStmtNodes
71  )
72
73if( LLVM_ENABLE_PIC )
74  set(SHARED_LIBRARY TRUE)
75  add_clang_library(libclang ${SOURCES})
76  target_link_libraries(libclang ${LIBRARIES})
77  add_dependencies(libclang ${GENERATED_HEADERS})
78
79  if(WIN32)
80    set_target_properties(libclang
81      PROPERTIES
82      OUTPUT_NAME "libclang"
83      VERSION ${LIBCLANG_LIBRARY_VERSION}
84      DEFINE_SYMBOL _CINDEX_LIB_)
85  else()
86    set_target_properties(libclang
87      PROPERTIES
88      OUTPUT_NAME "clang"
89      VERSION ${LIBCLANG_LIBRARY_VERSION}
90      DEFINE_SYMBOL _CINDEX_LIB_)
91  endif()
92
93  if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
94    set(LIBCLANG_LINK_FLAGS
95      "-Wl,-compatibility_version -Wl,1 -Wl,-dead_strip")
96    set_target_properties(libclang
97      PROPERTIES
98      LINK_FLAGS "${LIBCLANG_LINK_FLAGS}"
99      INSTALL_NAME_DIR "@executable_path/../lib")
100  endif()
101
102
103  set(LIBCLANG_STATIC_TARGET_NAME libclang_static)
104else()
105  set(LIBCLANG_STATIC_TARGET_NAME libclang)
106endif()
107
108if( NOT BUILD_SHARED_LIBS AND NOT WIN32 )
109  add_clang_library(${LIBCLANG_STATIC_TARGET_NAME} STATIC ${SOURCES})
110  target_link_libraries(${LIBCLANG_STATIC_TARGET_NAME} ${LIBRARIES})
111  add_dependencies(${LIBCLANG_STATIC_TARGET_NAME} ${GENERATED_HEADERS})
112
113  set_target_properties(${LIBCLANG_STATIC_TARGET_NAME}
114    PROPERTIES
115    OUTPUT_NAME "clang")
116endif()
117