CMakeLists.txt revision 746d99132bd05b189766836c393a92a96d019c2b
1set(SHARED_LIBRARY TRUE)
2
3set(LLVM_NO_RTTI 1)
4
5set(LLVM_USED_LIBS
6  clangFrontend
7  clangDriver
8  clangSema
9  clangAnalysis
10  clangAST
11  clangParse
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  CIndexCodeCompletion.cpp
24  CIndexDiagnostic.cpp
25  CIndexInclusionStack.cpp
26  CIndexUSRs.cpp
27  CIndexer.cpp
28  CXCursor.cpp
29  CXTypes.cpp
30  ../../include/clang-c/Index.h
31)
32set_target_properties(libclang PROPERTIES OUTPUT_NAME clang)
33
34if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
35  # FIXME: Deal with LLVM_SUBMIT_VERSION?
36
37  # FIXME: This uses a special darwin-specific exports file in order to
38  # get underscore-prefixed names. It would be better to have build rules
39  # which know how to produce a darwin-suitable exports file from the
40  # regular exports file.
41  set_target_properties(libclang
42    PROPERTIES
43    LINK_FLAGS "-avoid-version -Wl,-exported_symbols_list -Wl,${CMAKE_CURRENT_SOURCE_DIR}/libclang.darwin.exports -Wl,-dead_strip -Wl,-seg1addr -Wl,0xE0000000"
44    INSTALL_NAME_DIR "@executable_path/../lib"
45    )
46endif()
47
48if(MSVC)
49  # windows.h doesn't compile with /Za
50  get_target_property(NON_ANSI_COMPILE_FLAGS libclang COMPILE_FLAGS)
51  string(REPLACE /Za "" NON_ANSI_COMPILE_FLAGS ${NON_ANSI_COMPILE_FLAGS})
52  set_target_properties(libclang PROPERTIES COMPILE_FLAGS ${NON_ANSI_COMPILE_FLAGS})
53endif(MSVC)
54
55set_target_properties(libclang
56  PROPERTIES
57  LINKER_LANGUAGE CXX
58  DEFINE_SYMBOL _CINDEX_LIB_)
59