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