CMakeLists.txt revision d4315fe3c4c9684068564cb68f262d1a805329a4
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  ../../include/clang-c/Index.h
43  )
44
45set(LIBRARIES
46  clangIndex
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  )
60
61set(GENERATED_HEADERS
62  ClangAttrClasses
63  ClangAttrList
64  ClangAttrParsedAttrList
65  ClangCommentNodes
66  ClangDiagnosticCommon
67  ClangDiagnosticFrontend
68  ClangDeclNodes
69  ClangStmtNodes
70  )
71
72set(EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/libclang.exports)
73
74if( LLVM_ENABLE_PIC )
75  set(SHARED_LIBRARY TRUE)
76  add_clang_library(libclang ${SOURCES})
77  target_link_libraries(libclang ${LIBRARIES})
78  add_dependencies(libclang ${GENERATED_HEADERS} clang-headers)
79
80  if(WIN32)
81    set_target_properties(libclang
82      PROPERTIES
83      OUTPUT_NAME "libclang"
84      VERSION ${LIBCLANG_LIBRARY_VERSION}
85      DEFINE_SYMBOL _CINDEX_LIB_)
86  else()
87    set_target_properties(libclang
88      PROPERTIES
89      OUTPUT_NAME "clang"
90      VERSION ${LIBCLANG_LIBRARY_VERSION}
91      DEFINE_SYMBOL _CINDEX_LIB_)
92  endif()
93
94  if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
95    set(LIBCLANG_LINK_FLAGS
96      " -Wl,-compatibility_version -Wl,1 -Wl,-dead_strip")
97    if (DEFINED ${LLVM_SUBMIT_VERSION})
98      set(LIBCLANG_LINK_FLAGS
99        "${LIBCLANG_LINK_FLAGS} -Wl,-current_version -Wl,${LLVM_SUBMIT_VERSION}.${LLVM_SUBMIT_SUBVERSION}")
100    endif()
101
102    set_property(TARGET libclang APPEND_STRING PROPERTY
103                 LINK_FLAGS ${LIBCLANG_LINK_FLAGS})
104    set_target_properties(libclang
105      PROPERTIES
106      INSTALL_NAME_DIR "@rpath")
107  endif()
108
109
110  set(LIBCLANG_STATIC_TARGET_NAME libclang_static)
111else()
112  set(LIBCLANG_STATIC_TARGET_NAME libclang)
113endif()
114
115option(LIBCLANG_BUILD_STATIC
116  "Build libclang as a static library (in addition to a shared one)" OFF)
117
118if( (NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC) AND NOT WIN32 )
119  add_clang_library(${LIBCLANG_STATIC_TARGET_NAME} STATIC ${SOURCES})
120  target_link_libraries(${LIBCLANG_STATIC_TARGET_NAME} ${LIBRARIES})
121  add_dependencies(${LIBCLANG_STATIC_TARGET_NAME} ${GENERATED_HEADERS} clang-headers)
122
123  set_target_properties(${LIBCLANG_STATIC_TARGET_NAME}
124    PROPERTIES
125    OUTPUT_NAME "clang")
126endif()
127