CMakeLists.txt revision 886e1606c28e970bb288abf4dbc40feb16822a79
1set(SHARED_LIBRARY TRUE)
2
3set(LLVM_USED_LIBS
4  clangFrontend
5  clangDriver
6  clangSerialization
7  clangIndex
8  clangSema
9  clangAST
10  clangLex
11  clangBasic)
12
13set( LLVM_LINK_COMPONENTS
14  bitreader
15  mc
16  core
17  )
18
19add_clang_library(libclang
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(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
34  # dylib versioning information
35  # FIXME: Is there a more CMake-ish way to handle this?
36  set(LIBCLANG_VERSION 1 
37      CACHE STRING "Version number of the libclang library")
38  set(LIBCLANG_SUBVERSION 0
39      CACHE STRING "Minor version number of the libclang library")
40  set(LIBCLANG_LINK_FLAGS 
41      "-Wl,-current_version -Wl,${LIBCLANG_VERSION}.${LIBCLANG_SUBVERSION} -Wl,-compatibility_version -Wl,1")
42
43  set(LIBCLANG_LINK_FLAGS 
44      "${LIBCLANG_LINK_FLAGS} -Wl,-dead_strip -Wl,-seg1addr -Wl,0xE0000000")
45
46  set_target_properties(libclang
47    PROPERTIES
48    LINK_FLAGS "${LIBCLANG_LINK_FLAGS}"
49    INSTALL_NAME_DIR "@executable_path/../lib")
50endif()
51
52if(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 COMPILE_FLAGS ${NON_ANSI_COMPILE_FLAGS})
57endif(MSVC)
58
59set_target_properties(libclang
60  PROPERTIES
61  PREFIX ""  # Otherwise we get liblibclang.so
62  LINKER_LANGUAGE CXX
63  DEFINE_SYMBOL _CINDEX_LIB_)
64