blob: a1090fb51f73fdf18a01e027eb4afc8cd4ffd25b [file] [log] [blame]
Michael J. Spencer09476212010-09-13 23:54:41 +00001set( LLVM_LINK_COMPONENTS
Peter Collingbourne8f5cf742011-02-19 23:03:58 +00002 support
Michael J. Spencer09476212010-09-13 23:54:41 +00003 mc
Michael J. Spencer09476212010-09-13 23:54:41 +00004 )
5
Oscar Fuentes72216102011-03-13 15:10:24 +00006set(SOURCES
Argyrios Kyrtzidis7fbd97f2011-07-09 20:00:58 +00007 ARCMigrate.cpp
Ted Kremenek0ec2cca2010-01-05 19:32:54 +00008 CIndex.cpp
Ted Kremenekae9e2212010-08-27 21:34:58 +00009 CIndexCXX.cpp
Ted Kremenek9cd9f6d2010-01-05 22:06:45 +000010 CIndexCodeCompletion.cpp
Douglas Gregor4f9c3762010-01-28 00:27:43 +000011 CIndexDiagnostic.cpp
Ted Kremenekbb2c7102011-10-31 21:40:19 +000012 CIndexDiagnostic.h
Argyrios Kyrtzidiscddafd32011-10-06 07:00:54 +000013 CIndexHigh.cpp
Ted Kremenek0b86e3a2010-01-26 19:31:51 +000014 CIndexInclusionStack.cpp
Ted Kremenek9cd9f6d2010-01-05 22:06:45 +000015 CIndexUSRs.cpp
Ted Kremenek0ec2cca2010-01-05 19:32:54 +000016 CIndexer.cpp
Ted Kremenekbb2c7102011-10-31 21:40:19 +000017 CIndexer.h
Ted Kremenek87553c42010-01-15 20:35:54 +000018 CXCursor.cpp
Ted Kremenekbb2c7102011-10-31 21:40:19 +000019 CXCursor.h
Ted Kremenekd010ba42011-11-10 08:43:12 +000020 CXLoadedDiagnostic.cpp
21 CXLoadedDiagnostic.h
Ted Kremenek4c4f08d2011-10-31 22:05:42 +000022 CXSourceLocation.cpp
Ted Kremenekbb2c7102011-10-31 21:40:19 +000023 CXSourceLocation.h
24 CXStoredDiagnostic.cpp
Ted Kremenek4b4f3692010-11-16 01:56:27 +000025 CXString.cpp
Ted Kremenekbb2c7102011-10-31 21:40:19 +000026 CXString.h
27 CXTranslationUnit.h
Ted Kremeneka5940822010-08-26 01:42:22 +000028 CXType.cpp
Ted Kremenekbb2c7102011-10-31 21:40:19 +000029 CXType.h
Argyrios Kyrtzidisdc199a32011-10-17 19:48:19 +000030 IndexBody.cpp
31 IndexDecl.cpp
32 IndexTypeSourceInfo.cpp
Ted Kremenekbb2c7102011-10-31 21:40:19 +000033 Index_Internal.h
Argyrios Kyrtzidisdc199a32011-10-17 19:48:19 +000034 Indexing.cpp
35 IndexingContext.cpp
Ted Kremenekbb2c7102011-10-31 21:40:19 +000036 IndexingContext.h
Douglas Gregor4db30232010-02-18 04:01:41 +000037 ../../include/clang-c/Index.h
Oscar Fuentes72216102011-03-13 15:10:24 +000038 )
Douglas Gregor43bc1a72009-09-25 06:35:15 +000039
Chandler Carruth28969b42012-06-21 01:30:21 +000040set(LIBRARIES
41 clangARCMigrate
42 clangRewrite
43 clangFrontend
44 clangDriver
45 clangSerialization
46 clangSema
47 clangEdit
48 clangAST
49 clangLex
50 clangBasic
51 )
52
Oscar Fuentes72216102011-03-13 15:10:24 +000053if( LLVM_ENABLE_PIC )
54 set(SHARED_LIBRARY TRUE)
55 add_clang_library(libclang ${SOURCES})
Chandler Carruth28969b42012-06-21 01:30:21 +000056 target_link_libraries(libclang ${LIBRARIES})
Douglas Gregorb1cf1ca2010-08-02 20:52:32 +000057
Manuel Klimek4fa6b602012-05-15 08:58:48 +000058 if(WIN32)
59 set_target_properties(libclang
60 PROPERTIES
61 OUTPUT_NAME "libclang"
62 VERSION ${LIBCLANG_LIBRARY_VERSION}
63 DEFINE_SYMBOL _CINDEX_LIB_)
64 else()
65 set_target_properties(libclang
66 PROPERTIES
67 OUTPUT_NAME "clang"
68 VERSION ${LIBCLANG_LIBRARY_VERSION}
69 DEFINE_SYMBOL _CINDEX_LIB_)
70 endif()
Oscar Fuentes72216102011-03-13 15:10:24 +000071
72 if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
Oscar Fuentesa29f7b22011-03-14 14:32:16 +000073 set(LIBCLANG_LINK_FLAGS
Argyrios Kyrtzidis19d09d22012-04-20 22:07:11 +000074 "-Wl,-compatibility_version -Wl,1 -Wl,-dead_strip")
Oscar Fuentes72216102011-03-13 15:10:24 +000075 set_target_properties(libclang
76 PROPERTIES
77 LINK_FLAGS "${LIBCLANG_LINK_FLAGS}"
78 INSTALL_NAME_DIR "@executable_path/../lib")
79 endif()
80
Oscar Fuentes72216102011-03-13 15:10:24 +000081
82 set(LIBCLANG_STATIC_TARGET_NAME libclang_static)
83else()
84 set(LIBCLANG_STATIC_TARGET_NAME libclang)
Douglas Gregor43bc1a72009-09-25 06:35:15 +000085endif()
Douglas Gregor629f4812009-10-05 22:25:29 +000086
Oscar Fuentes72216102011-03-13 15:10:24 +000087if( NOT BUILD_SHARED_LIBS AND NOT WIN32 )
88 add_clang_library(${LIBCLANG_STATIC_TARGET_NAME} STATIC ${SOURCES})
Chandler Carruth28969b42012-06-21 01:30:21 +000089 target_link_libraries(${LIBCLANG_STATIC_TARGET_NAME} ${LIBRARIES})
Douglas Gregorbe8705b2011-02-25 19:24:02 +000090
Oscar Fuentes72216102011-03-13 15:10:24 +000091 set_target_properties(${LIBCLANG_STATIC_TARGET_NAME}
92 PROPERTIES
Manuel Klimek4fa6b602012-05-15 08:58:48 +000093 OUTPUT_NAME "clang")
Oscar Fuentes72216102011-03-13 15:10:24 +000094endif()