set(LLVM_USED_LIBS clangFrontend clangDriver clangSerialization clangIndex clangSema clangAST clangLex clangBasic) set( LLVM_LINK_COMPONENTS support mc ) set(SOURCES CIndex.cpp CIndexCXX.cpp CIndexCodeCompletion.cpp CIndexDiagnostic.cpp CIndexInclusionStack.cpp CIndexUSRs.cpp CIndexer.cpp CXCursor.cpp CXString.cpp CXType.cpp ../../include/clang-c/Index.h ) if( LLVM_ENABLE_PIC ) set(SHARED_LIBRARY TRUE) add_clang_library(libclang ${SOURCES}) set_target_properties(libclang PROPERTIES OUTPUT_NAME "clang" VERSION ${LIBCLANG_LIBRARY_VERSION} DEFINE_SYMBOL _CINDEX_LIB_) if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") set(LIBCLANG_LINK_FLAGS "-Wl,-compatibility_version -Wl,1 -Wl,-dead_strip -Wl,-seg1addr -Wl,0xE0000000") set_target_properties(libclang PROPERTIES LINK_FLAGS "${LIBCLANG_LINK_FLAGS}" 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() set(LIBCLANG_STATIC_TARGET_NAME libclang_static) else() set(LIBCLANG_STATIC_TARGET_NAME libclang) endif() if( NOT BUILD_SHARED_LIBS AND NOT WIN32 ) add_clang_library(${LIBCLANG_STATIC_TARGET_NAME} STATIC ${SOURCES}) set_target_properties(${LIBCLANG_STATIC_TARGET_NAME} PROPERTIES OUTPUT_NAME "clang") endif()