CMakeLists.txt revision 1edabbc32a07654d9b9fe44f50533ff146abd03e
1set(LLVM_USED_LIBS
2  clangARCMigrate
3  clangRewrite
4  clangFrontend
5  clangDriver
6  clangSerialization
7  clangIndex
8  clangSema
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  CXSourceLocation.h
33  CXStoredDiagnostic.cpp
34  CXString.cpp
35  CXString.h
36  CXTranslationUnit.h
37  CXType.cpp
38  CXType.h
39  IndexBody.cpp
40  IndexDecl.cpp
41  IndexTypeSourceInfo.cpp
42  Index_Internal.h
43  Indexing.cpp
44  IndexingContext.cpp
45  IndexingContext.h
46  ../../include/clang-c/Index.h
47  )
48
49if( LLVM_ENABLE_PIC )
50  set(SHARED_LIBRARY TRUE)
51  add_clang_library(libclang ${SOURCES})
52
53  set_target_properties(libclang
54    PROPERTIES
55    OUTPUT_NAME "libclang"
56    VERSION ${LIBCLANG_LIBRARY_VERSION}
57    DEFINE_SYMBOL _CINDEX_LIB_)
58
59  if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
60    set(LIBCLANG_LINK_FLAGS
61      "-Wl,-compatibility_version -Wl,1 -Wl,-dead_strip -Wl,-seg1addr -Wl,0xE0000000")
62    set_target_properties(libclang
63      PROPERTIES
64      LINK_FLAGS "${LIBCLANG_LINK_FLAGS}"
65      INSTALL_NAME_DIR "@executable_path/../lib")
66  endif()
67
68  if(MSVC)
69    # windows.h doesn't compile with /Za
70    get_target_property(NON_ANSI_COMPILE_FLAGS libclang COMPILE_FLAGS)
71    string(REPLACE "/Za" "" NON_ANSI_COMPILE_FLAGS ${NON_ANSI_COMPILE_FLAGS})
72    set_target_properties(libclang PROPERTIES
73      COMPILE_FLAGS ${NON_ANSI_COMPILE_FLAGS})
74  endif()
75
76  set(LIBCLANG_STATIC_TARGET_NAME libclang_static)
77else()
78  set(LIBCLANG_STATIC_TARGET_NAME libclang)
79endif()
80
81if( NOT BUILD_SHARED_LIBS AND NOT WIN32 )
82  add_clang_library(${LIBCLANG_STATIC_TARGET_NAME} STATIC ${SOURCES})
83
84  set_target_properties(${LIBCLANG_STATIC_TARGET_NAME}
85    PROPERTIES
86    OUTPUT_NAME "libclang")
87endif()
88