CMakeLists.txt revision f676608f60c523c64ccb41c70b5fdf464855ad16
1set(LLVM_USED_LIBS
2  clangARCMigrate
3  clangRewrite
4  clangFrontend
5  clangDriver
6  clangSerialization
7  clangSema
8  clangEdit
9  clangAST
10  clangLex
11  clangBasic)
12
13set( LLVM_LINK_COMPONENTS
14  support
15  mc
16  )
17
18set(SOURCES
19  ARCMigrate.cpp
20  CIndex.cpp
21  CIndexCXX.cpp
22  CIndexCodeCompletion.cpp
23  CIndexDiagnostic.cpp
24  CIndexDiagnostic.h
25  CIndexHigh.cpp
26  CIndexInclusionStack.cpp
27  CIndexUSRs.cpp
28  CIndexer.cpp
29  CIndexer.h
30  CXCursor.cpp
31  CXCursor.h
32  CXLoadedDiagnostic.cpp
33  CXLoadedDiagnostic.h
34  CXSourceLocation.cpp
35  CXSourceLocation.h
36  CXStoredDiagnostic.cpp
37  CXString.cpp
38  CXString.h
39  CXTranslationUnit.h
40  CXType.cpp
41  CXType.h
42  IndexBody.cpp
43  IndexDecl.cpp
44  IndexTypeSourceInfo.cpp
45  Index_Internal.h
46  Indexing.cpp
47  IndexingContext.cpp
48  IndexingContext.h
49  ../../include/clang-c/Index.h
50  )
51
52if( LLVM_ENABLE_PIC )
53  set(SHARED_LIBRARY TRUE)
54  add_clang_library(libclang ${SOURCES})
55
56  set_target_properties(libclang
57    PROPERTIES
58    OUTPUT_NAME "libclang"
59    VERSION ${LIBCLANG_LIBRARY_VERSION}
60    DEFINE_SYMBOL _CINDEX_LIB_)
61
62  if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
63    set(LIBCLANG_LINK_FLAGS
64      "-Wl,-compatibility_version -Wl,1 -Wl,-dead_strip")
65    set_target_properties(libclang
66      PROPERTIES
67      LINK_FLAGS "${LIBCLANG_LINK_FLAGS}"
68      INSTALL_NAME_DIR "@executable_path/../lib")
69  endif()
70
71  if(MSVC)
72    # windows.h doesn't compile with /Za
73    get_target_property(NON_ANSI_COMPILE_FLAGS libclang COMPILE_FLAGS)
74    string(REPLACE "/Za" "" NON_ANSI_COMPILE_FLAGS ${NON_ANSI_COMPILE_FLAGS})
75    set_target_properties(libclang PROPERTIES
76      COMPILE_FLAGS ${NON_ANSI_COMPILE_FLAGS})
77  endif()
78
79  set(LIBCLANG_STATIC_TARGET_NAME libclang_static)
80else()
81  set(LIBCLANG_STATIC_TARGET_NAME libclang)
82endif()
83
84if( NOT BUILD_SHARED_LIBS AND NOT WIN32 )
85  add_clang_library(${LIBCLANG_STATIC_TARGET_NAME} STATIC ${SOURCES})
86
87  set_target_properties(${LIBCLANG_STATIC_TARGET_NAME}
88    PROPERTIES
89    OUTPUT_NAME "libclang")
90endif()
91