• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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  clangRewriteCore
47  clangRewriteFrontend
48  clangFrontend
49  clangDriver
50  clangSerialization
51  clangSema
52  clangEdit
53  clangAST
54  clangLex
55  clangTooling
56  clangBasic
57  )
58
59set(GENERATED_HEADERS
60  ClangAttrClasses
61  ClangAttrList
62  ClangAttrParsedAttrList
63  ClangCommentNodes
64  ClangDiagnosticCommon
65  ClangDiagnosticFrontend
66  ClangDeclNodes
67  ClangStmtNodes
68  )
69
70if( LLVM_ENABLE_PIC )
71  set(SHARED_LIBRARY TRUE)
72  add_clang_library(libclang ${SOURCES})
73  target_link_libraries(libclang ${LIBRARIES})
74  add_dependencies(libclang ${GENERATED_HEADERS})
75
76  if(WIN32)
77    set_target_properties(libclang
78      PROPERTIES
79      OUTPUT_NAME "libclang"
80      VERSION ${LIBCLANG_LIBRARY_VERSION}
81      DEFINE_SYMBOL _CINDEX_LIB_)
82  else()
83    set_target_properties(libclang
84      PROPERTIES
85      OUTPUT_NAME "clang"
86      VERSION ${LIBCLANG_LIBRARY_VERSION}
87      DEFINE_SYMBOL _CINDEX_LIB_)
88  endif()
89
90  if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
91    set(LIBCLANG_LINK_FLAGS
92      "-Wl,-compatibility_version -Wl,1 -Wl,-dead_strip")
93    set_target_properties(libclang
94      PROPERTIES
95      LINK_FLAGS "${LIBCLANG_LINK_FLAGS}"
96      INSTALL_NAME_DIR "@executable_path/../lib")
97  endif()
98
99
100  set(LIBCLANG_STATIC_TARGET_NAME libclang_static)
101else()
102  set(LIBCLANG_STATIC_TARGET_NAME libclang)
103endif()
104
105if( NOT BUILD_SHARED_LIBS AND NOT WIN32 )
106  add_clang_library(${LIBCLANG_STATIC_TARGET_NAME} STATIC ${SOURCES})
107  target_link_libraries(${LIBCLANG_STATIC_TARGET_NAME} ${LIBRARIES})
108  add_dependencies(${LIBCLANG_STATIC_TARGET_NAME} ${GENERATED_HEADERS})
109
110  set_target_properties(${LIBCLANG_STATIC_TARGET_NAME}
111    PROPERTIES
112    OUTPUT_NAME "clang")
113endif()
114