blob: 66a1710bac1428c6abfe5f087908c9faa77f157e [file] [log] [blame]
Michael J. Spencer560a9212010-09-13 23:54:41 +00001set(LLVM_USED_LIBS
Argyrios Kyrtzidis69325d52011-07-09 20:00:58 +00002 clangARCMigrate
Argyrios Kyrtzidis96210192011-07-09 21:35:58 +00003 clangRewrite
Michael J. Spencer560a9212010-09-13 23:54:41 +00004 clangFrontend
5 clangDriver
6 clangSerialization
7 clangIndex
8 clangSema
Ted Kremenek30660a82012-03-06 20:06:33 +00009 clangEdit
Michael J. Spencer560a9212010-09-13 23:54:41 +000010 clangAST
11 clangLex
12 clangBasic)
13
14set( LLVM_LINK_COMPONENTS
Peter Collingbourne4b93d662011-02-19 23:03:58 +000015 support
Michael J. Spencer560a9212010-09-13 23:54:41 +000016 mc
Michael J. Spencer560a9212010-09-13 23:54:41 +000017 )
18
Oscar Fuentes0b34dba2011-03-13 15:10:24 +000019set(SOURCES
Argyrios Kyrtzidis69325d52011-07-09 20:00:58 +000020 ARCMigrate.cpp
Ted Kremenekab188932010-01-05 19:32:54 +000021 CIndex.cpp
Ted Kremenek3064ef92010-08-27 21:34:58 +000022 CIndexCXX.cpp
Ted Kremenek1b6869a2010-01-05 22:06:45 +000023 CIndexCodeCompletion.cpp
Douglas Gregor5352ac02010-01-28 00:27:43 +000024 CIndexDiagnostic.cpp
Ted Kremenek1edabbc2011-10-31 21:40:19 +000025 CIndexDiagnostic.h
Argyrios Kyrtzidisaed123e2011-10-06 07:00:54 +000026 CIndexHigh.cpp
Ted Kremenek16b55a72010-01-26 19:31:51 +000027 CIndexInclusionStack.cpp
Ted Kremenek1b6869a2010-01-05 22:06:45 +000028 CIndexUSRs.cpp
Ted Kremenekab188932010-01-05 19:32:54 +000029 CIndexer.cpp
Ted Kremenek1edabbc2011-10-31 21:40:19 +000030 CIndexer.h
Ted Kremenek16c440a2010-01-15 20:35:54 +000031 CXCursor.cpp
Ted Kremenek1edabbc2011-10-31 21:40:19 +000032 CXCursor.h
Ted Kremenek15322172011-11-10 08:43:12 +000033 CXLoadedDiagnostic.cpp
34 CXLoadedDiagnostic.h
Ted Kremenek3ddef062011-10-31 22:05:42 +000035 CXSourceLocation.cpp
Ted Kremenek1edabbc2011-10-31 21:40:19 +000036 CXSourceLocation.h
37 CXStoredDiagnostic.cpp
Ted Kremeneked122732010-11-16 01:56:27 +000038 CXString.cpp
Ted Kremenek1edabbc2011-10-31 21:40:19 +000039 CXString.h
40 CXTranslationUnit.h
Ted Kremenek95f33552010-08-26 01:42:22 +000041 CXType.cpp
Ted Kremenek1edabbc2011-10-31 21:40:19 +000042 CXType.h
Argyrios Kyrtzidis4e7064f2011-10-17 19:48:19 +000043 IndexBody.cpp
44 IndexDecl.cpp
45 IndexTypeSourceInfo.cpp
Ted Kremenek1edabbc2011-10-31 21:40:19 +000046 Index_Internal.h
Argyrios Kyrtzidis4e7064f2011-10-17 19:48:19 +000047 Indexing.cpp
48 IndexingContext.cpp
Ted Kremenek1edabbc2011-10-31 21:40:19 +000049 IndexingContext.h
Douglas Gregorf14bee82010-02-18 04:01:41 +000050 ../../include/clang-c/Index.h
Oscar Fuentes0b34dba2011-03-13 15:10:24 +000051 )
Douglas Gregorac47bc72009-09-25 06:35:15 +000052
Oscar Fuentes0b34dba2011-03-13 15:10:24 +000053if( LLVM_ENABLE_PIC )
54 set(SHARED_LIBRARY TRUE)
55 add_clang_library(libclang ${SOURCES})
Douglas Gregor73dfa3d2010-08-02 20:52:32 +000056
Daniel Dunbarf51f20f2010-04-30 21:51:10 +000057 set_target_properties(libclang
Douglas Gregorac47bc72009-09-25 06:35:15 +000058 PROPERTIES
Oscar Fuentes4656b632011-04-10 02:29:27 +000059 OUTPUT_NAME "libclang"
Oscar Fuentes0b34dba2011-03-13 15:10:24 +000060 VERSION ${LIBCLANG_LIBRARY_VERSION}
61 DEFINE_SYMBOL _CINDEX_LIB_)
62
63 if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
Oscar Fuentes66564572011-03-14 14:32:16 +000064 set(LIBCLANG_LINK_FLAGS
65 "-Wl,-compatibility_version -Wl,1 -Wl,-dead_strip -Wl,-seg1addr -Wl,0xE0000000")
Oscar Fuentes0b34dba2011-03-13 15:10:24 +000066 set_target_properties(libclang
67 PROPERTIES
68 LINK_FLAGS "${LIBCLANG_LINK_FLAGS}"
69 INSTALL_NAME_DIR "@executable_path/../lib")
70 endif()
71
72 if(MSVC)
73 # windows.h doesn't compile with /Za
74 get_target_property(NON_ANSI_COMPILE_FLAGS libclang COMPILE_FLAGS)
75 string(REPLACE "/Za" "" NON_ANSI_COMPILE_FLAGS ${NON_ANSI_COMPILE_FLAGS})
76 set_target_properties(libclang PROPERTIES
77 COMPILE_FLAGS ${NON_ANSI_COMPILE_FLAGS})
78 endif()
79
80 set(LIBCLANG_STATIC_TARGET_NAME libclang_static)
81else()
82 set(LIBCLANG_STATIC_TARGET_NAME libclang)
Douglas Gregorac47bc72009-09-25 06:35:15 +000083endif()
Douglas Gregor25888302009-10-05 22:25:29 +000084
Oscar Fuentes0b34dba2011-03-13 15:10:24 +000085if( NOT BUILD_SHARED_LIBS AND NOT WIN32 )
86 add_clang_library(${LIBCLANG_STATIC_TARGET_NAME} STATIC ${SOURCES})
Douglas Gregor8435bf92011-02-25 19:24:02 +000087
Oscar Fuentes0b34dba2011-03-13 15:10:24 +000088 set_target_properties(${LIBCLANG_STATIC_TARGET_NAME}
89 PROPERTIES
Oscar Fuentes4656b632011-04-10 02:29:27 +000090 OUTPUT_NAME "libclang")
Oscar Fuentes0b34dba2011-03-13 15:10:24 +000091endif()