CMakeLists.txt revision 5ffcf5de8f2b9924d3dbdf4e81f71fa2c2f5ceac
1set(SHARED_LIBRARY TRUE)
2
3set(LLVM_NO_RTTI 1)
4
5set(LLVM_USED_LIBS
6  clangFrontend
7  clangDriver
8  clangSerialization
9  clangIndex
10  clangSema
11  clangAST
12  clangLex
13  clangBasic)
14
15set( LLVM_LINK_COMPONENTS
16  bitreader
17  mc
18  core
19  )
20
21add_clang_library(libclang
22  CIndex.cpp
23  CIndexCXX.cpp
24  CIndexCodeCompletion.cpp
25  CIndexDiagnostic.cpp
26  CIndexInclusionStack.cpp
27  CIndexUSRs.cpp
28  CIndexer.cpp
29  CXCursor.cpp
30  CXString.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  PREFIX ""  # Otherwise we get liblibclang.so
64  LINKER_LANGUAGE CXX
65  DEFINE_SYMBOL _CINDEX_LIB_)
66