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