CMakeLists.txt revision cdb65d8724428664af7394451863b4aa6123f52b
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  ../../include/clang-c/Index.h
30)
31set_target_properties(libclang PROPERTIES OUTPUT_NAME clang)
32
33if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
34  # FIXME: Deal with LLVM_SUBMIT_VERSION?
35
36  # FIXME: This uses a special darwin-specific exports file in order to
37  # get underscore-prefixed names. It would be better to have build rules
38  # which know how to produce a darwin-suitable exports file from the
39  # regular exports file.
40  set_target_properties(libclang
41    PROPERTIES
42    LINK_FLAGS "-avoid-version -Wl,-exported_symbols_list -Wl,${CMAKE_CURRENT_SOURCE_DIR}/libclang.darwin.exports -Wl,-dead_strip -Wl,-seg1addr -Wl,0xE0000000"
43    INSTALL_NAME_DIR "@executable_path/../lib"
44    )
45endif()
46
47if(MSVC)
48  # windows.h doesn't compile with /Za
49  get_target_property(NON_ANSI_COMPILE_FLAGS libclang COMPILE_FLAGS)
50  string(REPLACE /Za "" NON_ANSI_COMPILE_FLAGS ${NON_ANSI_COMPILE_FLAGS})
51  set_target_properties(libclang PROPERTIES COMPILE_FLAGS ${NON_ANSI_COMPILE_FLAGS})
52endif(MSVC)
53
54set_target_properties(libclang
55  PROPERTIES
56  LINKER_LANGUAGE CXX
57  DEFINE_SYMBOL _CINDEX_LIB_)
58