CMakeLists.txt revision d4315fe3c4c9684068564cb68f262d1a805329a4
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 ) 60 61set(GENERATED_HEADERS 62 ClangAttrClasses 63 ClangAttrList 64 ClangAttrParsedAttrList 65 ClangCommentNodes 66 ClangDiagnosticCommon 67 ClangDiagnosticFrontend 68 ClangDeclNodes 69 ClangStmtNodes 70 ) 71 72set(EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/libclang.exports) 73 74if( LLVM_ENABLE_PIC ) 75 set(SHARED_LIBRARY TRUE) 76 add_clang_library(libclang ${SOURCES}) 77 target_link_libraries(libclang ${LIBRARIES}) 78 add_dependencies(libclang ${GENERATED_HEADERS} clang-headers) 79 80 if(WIN32) 81 set_target_properties(libclang 82 PROPERTIES 83 OUTPUT_NAME "libclang" 84 VERSION ${LIBCLANG_LIBRARY_VERSION} 85 DEFINE_SYMBOL _CINDEX_LIB_) 86 else() 87 set_target_properties(libclang 88 PROPERTIES 89 OUTPUT_NAME "clang" 90 VERSION ${LIBCLANG_LIBRARY_VERSION} 91 DEFINE_SYMBOL _CINDEX_LIB_) 92 endif() 93 94 if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") 95 set(LIBCLANG_LINK_FLAGS 96 " -Wl,-compatibility_version -Wl,1 -Wl,-dead_strip") 97 if (DEFINED ${LLVM_SUBMIT_VERSION}) 98 set(LIBCLANG_LINK_FLAGS 99 "${LIBCLANG_LINK_FLAGS} -Wl,-current_version -Wl,${LLVM_SUBMIT_VERSION}.${LLVM_SUBMIT_SUBVERSION}") 100 endif() 101 102 set_property(TARGET libclang APPEND_STRING PROPERTY 103 LINK_FLAGS ${LIBCLANG_LINK_FLAGS}) 104 set_target_properties(libclang 105 PROPERTIES 106 INSTALL_NAME_DIR "@rpath") 107 endif() 108 109 110 set(LIBCLANG_STATIC_TARGET_NAME libclang_static) 111else() 112 set(LIBCLANG_STATIC_TARGET_NAME libclang) 113endif() 114 115option(LIBCLANG_BUILD_STATIC 116 "Build libclang as a static library (in addition to a shared one)" OFF) 117 118if( (NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC) AND NOT WIN32 ) 119 add_clang_library(${LIBCLANG_STATIC_TARGET_NAME} STATIC ${SOURCES}) 120 target_link_libraries(${LIBCLANG_STATIC_TARGET_NAME} ${LIBRARIES}) 121 add_dependencies(${LIBCLANG_STATIC_TARGET_NAME} ${GENERATED_HEADERS} clang-headers) 122 123 set_target_properties(${LIBCLANG_STATIC_TARGET_NAME} 124 PROPERTIES 125 OUTPUT_NAME "clang") 126endif() 127