CMakeLists.txt revision 3064ef9e604d19a0cfd0d8e3ed3055bfd83f88fd
1set(SHARED_LIBRARY TRUE)
2
3set(LLVM_NO_RTTI 1)
4
5set(LLVM_USED_LIBS
6  clangFrontend
7  clangDriver
8  clangSerialization
9  clangParse
10  clangSema
11  clangAnalysis
12  clangAST
13  clangLex
14  clangBasic)
15
16set( LLVM_LINK_COMPONENTS
17  bitreader
18  mc
19  core
20  )
21
22add_clang_library(libclang
23  CIndex.cpp
24  CIndexCXX.cpp
25  CIndexCodeCompletion.cpp
26  CIndexDiagnostic.cpp
27  CIndexInclusionStack.cpp
28  CIndexUSRs.cpp
29  CIndexer.cpp
30  CXCursor.cpp
31  CXType.cpp
32  ../../include/clang-c/Index.h
33)
34
35if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
36  # dylib versioning information
37  # FIXME: Is there a more CMake-ish way to handle this?
38  set(LIBCLANG_VERSION 1 
39      CACHE STRING "Version number of the libclang library")
40  set(LIBCLANG_SUBVERSION 0
41      CACHE STRING "Minor version number of the libclang library")
42  set(LIBCLANG_LINK_FLAGS 
43      "-Wl,-current_version -Wl,${LIBCLANG_VERSION}.${LIBCLANG_SUBVERSION} -Wl,-compatibility_version -Wl,1")
44
45  set(LIBCLANG_LINK_FLAGS 
46      "${LIBCLANG_LINK_FLAGS} -Wl,-dead_strip -Wl,-seg1addr -Wl,0xE0000000")
47
48  set_target_properties(libclang
49    PROPERTIES
50    LINK_FLAGS "${LIBCLANG_LINK_FLAGS}"
51    INSTALL_NAME_DIR "@executable_path/../lib")
52endif()
53
54if(MSVC)
55  # windows.h doesn't compile with /Za
56  get_target_property(NON_ANSI_COMPILE_FLAGS libclang COMPILE_FLAGS)
57  string(REPLACE /Za "" NON_ANSI_COMPILE_FLAGS ${NON_ANSI_COMPILE_FLAGS})
58  set_target_properties(libclang PROPERTIES COMPILE_FLAGS ${NON_ANSI_COMPILE_FLAGS})
59endif(MSVC)
60
61set_target_properties(libclang
62  PROPERTIES
63  LINKER_LANGUAGE CXX
64  DEFINE_SYMBOL _CINDEX_LIB_)
65