diff options
Diffstat (limited to 'tools/libclang/CMakeLists.txt')
-rw-r--r-- | tools/libclang/CMakeLists.txt | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt new file mode 100644 index 0000000..d3de94a --- /dev/null +++ b/tools/libclang/CMakeLists.txt @@ -0,0 +1,57 @@ +set(SHARED_LIBRARY TRUE) + +set(LLVM_NO_RTTI 1) + +set(LLVM_USED_LIBS + clangFrontend + clangDriver + clangSema + clangAnalysis + clangAST + clangParse + clangLex + clangBasic) + +set( LLVM_LINK_COMPONENTS + bitreader + mc + core + ) + +add_clang_library(libclang + CIndex.cpp + CIndexCodeCompletion.cpp + CIndexDiagnostic.cpp + CIndexInclusionStack.cpp + CIndexUSRs.cpp + CIndexer.cpp + CXCursor.cpp + ../../include/clang-c/Index.h +) +set_target_properties(libclang PROPERTIES OUTPUT_NAME clang) + +if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + # FIXME: Deal with LLVM_SUBMIT_VERSION? + + # FIXME: This uses a special darwin-specific exports file in order to + # get underscore-prefixed names. It would be better to have build rules + # which know how to produce a darwin-suitable exports file from the + # regular exports file. + set_target_properties(libclang + PROPERTIES + LINK_FLAGS "-avoid-version -Wl,-exported_symbols_list -Wl,${CMAKE_CURRENT_SOURCE_DIR}/libclang.darwin.exports -Wl,-dead_strip -Wl,-seg1addr -Wl,0xE0000000" + INSTALL_NAME_DIR "@executable_path/../lib" + ) +endif() + +if(MSVC) + # windows.h doesn't compile with /Za + get_target_property(NON_ANSI_COMPILE_FLAGS libclang COMPILE_FLAGS) + string(REPLACE /Za "" NON_ANSI_COMPILE_FLAGS ${NON_ANSI_COMPILE_FLAGS}) + set_target_properties(libclang PROPERTIES COMPILE_FLAGS ${NON_ANSI_COMPILE_FLAGS}) +endif(MSVC) + +set_target_properties(libclang + PROPERTIES + LINKER_LANGUAGE CXX + DEFINE_SYMBOL _CINDEX_LIB_) |