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