1 set(LLVM_LINK_COMPONENTS 2 ${LLVM_TARGETS_TO_BUILD} 3 asmparser 4 support 5 mc 6 ) 7 8 set(SOURCES 9 ARCMigrate.cpp 10 CIndex.cpp 11 CIndexCXX.cpp 12 CIndexCodeCompletion.cpp 13 CIndexDiagnostic.cpp 14 CIndexDiagnostic.h 15 CIndexHigh.cpp 16 CIndexInclusionStack.cpp 17 CIndexUSRs.cpp 18 CIndexer.cpp 19 CIndexer.h 20 CXComment.cpp 21 CXCursor.cpp 22 CXCursor.h 23 CXCompilationDatabase.cpp 24 CXLoadedDiagnostic.cpp 25 CXLoadedDiagnostic.h 26 CXSourceLocation.cpp 27 CXSourceLocation.h 28 CXStoredDiagnostic.cpp 29 CXString.cpp 30 CXString.h 31 CXTranslationUnit.h 32 CXType.cpp 33 CXType.h 34 IndexBody.cpp 35 IndexDecl.cpp 36 IndexTypeSourceInfo.cpp 37 Index_Internal.h 38 Indexing.cpp 39 IndexingContext.cpp 40 IndexingContext.h 41 ../../include/clang-c/Index.h 42 ) 43 44 set(LIBRARIES 45 clangARCMigrate 46 clangRewriteCore 47 clangRewriteFrontend 48 clangFrontend 49 clangDriver 50 clangSerialization 51 clangSema 52 clangEdit 53 clangAST 54 clangLex 55 clangTooling 56 clangBasic 57 ) 58 59 set(GENERATED_HEADERS 60 ClangAttrClasses 61 ClangAttrList 62 ClangAttrParsedAttrList 63 ClangCommentNodes 64 ClangDiagnosticCommon 65 ClangDiagnosticFrontend 66 ClangDeclNodes 67 ClangStmtNodes 68 ) 69 70 if( LLVM_ENABLE_PIC ) 71 set(SHARED_LIBRARY TRUE) 72 add_clang_library(libclang ${SOURCES}) 73 target_link_libraries(libclang ${LIBRARIES}) 74 add_dependencies(libclang ${GENERATED_HEADERS}) 75 76 if(WIN32) 77 set_target_properties(libclang 78 PROPERTIES 79 OUTPUT_NAME "libclang" 80 VERSION ${LIBCLANG_LIBRARY_VERSION} 81 DEFINE_SYMBOL _CINDEX_LIB_) 82 else() 83 set_target_properties(libclang 84 PROPERTIES 85 OUTPUT_NAME "clang" 86 VERSION ${LIBCLANG_LIBRARY_VERSION} 87 DEFINE_SYMBOL _CINDEX_LIB_) 88 endif() 89 90 if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") 91 set(LIBCLANG_LINK_FLAGS 92 "-Wl,-compatibility_version -Wl,1 -Wl,-dead_strip") 93 set_target_properties(libclang 94 PROPERTIES 95 LINK_FLAGS "${LIBCLANG_LINK_FLAGS}" 96 INSTALL_NAME_DIR "@executable_path/../lib") 97 endif() 98 99 100 set(LIBCLANG_STATIC_TARGET_NAME libclang_static) 101 else() 102 set(LIBCLANG_STATIC_TARGET_NAME libclang) 103 endif() 104 105 if( NOT BUILD_SHARED_LIBS AND NOT WIN32 ) 106 add_clang_library(${LIBCLANG_STATIC_TARGET_NAME} STATIC ${SOURCES}) 107 target_link_libraries(${LIBCLANG_STATIC_TARGET_NAME} ${LIBRARIES}) 108 add_dependencies(${LIBCLANG_STATIC_TARGET_NAME} ${GENERATED_HEADERS}) 109 110 set_target_properties(${LIBCLANG_STATIC_TARGET_NAME} 111 PROPERTIES 112 OUTPUT_NAME "clang") 113 endif() 114